Category Archives: Software as a Service

Salesforce: Links, News And Resources (1)

Yesterday, I assisted to Salesforce meetup at Buenos Aires. It was interesting: for years, I read and follow the advance of Salesforce apps, but only from outside: I’m not a Salesforce user nor developer. I want to write some proof-of-concept application to show that an open source version could be created (for Force, not a complete CRM). Candidate technology: Node.js. My links:

5 Worst Sales Scenarios and How to Avoid Them – Salesforce Blog

Marc Benioff and Larry Ellison announce an exciting strategic partnership. –

Real-time SaaS data access for advanced reporting | Connection Cloud

Salesforce: The cloud is not an ‘all or nothing game’ for health care | VentureBeat

Salesforce Joins Datahug’s $4M Series-A, While Valley VCs Love Its ‘Who Knows Who’ Platform | TechCrunch

Salesforce to raise $1 billion in convertible debt offering to help fuel acquisitions – The Next Web

Sales Performance & Sales Productivity Management by – Adds Real-Time Integration With Dropbox and Wufoo

(311) What is the best method to learn Apex code? – Quora

Does the Salesforce Apex programming language support function parameters? – Stack Overflow writes its own language

Apex Code: The World’s First On-Demand Programming Language – workbook –

Salesforce API Connection Library for Node.js Applications

Google Chose Instead Of Asana To Get Stuff Done | TechCrunch

Build Canvas apps on Heroku – YouTube

Learn to Build Apps Webinar – YouTube

WS-Trust and SAML and OAuth, oh my!

The Week the Cloud Won –

Tech journalists who make no sense – (37signals)

How Marc Benioff of Became The Most Valuable …

My Links

Keep tuned!

Angel “Java” Lopez

Sky is azure

Yesterday, Microsoft unveils Azure Services Platform, at PDC 2008. According to the revamped Microsoft Strategy Software + Service site:

Azure Services Platform

The Azure Services Platform is part of this vision, providing the power of choice and flexibility in developing, operating, migrating, and managing applications that exist on the internet or devices to provide the best experience for users.  The services platform enables this by utilizing common languages, runtimes and frameworks – a common toolset that spans from the service in the cloud to a server, and from the PC to the browser to the phone.

But, what it means all this stuff? There is more detailed information at:

Microsoft Azure

What is Azure

The following paragraphs are based on the published information:

The Azure Services Platform is hosted in Microsoft data centers, providing an operating system and a set of developer services that can be used one by one or together. You can leverage your existing skills with Visual Studio and .NET Framework. In the future, Azure will support more programming language, as Python, Ruby, and development environments, as Eclipse. Azure uses HTTP, RESP, SOAP and XML: it’s based on open standards.

Windows Azure

Windows Azure lives at the base of the stack. It’s a cloud services operating system, supporting development, service hosting and service management environment for all the platform. You can create applications with Visual Studio: CTP version is integrated with VS experience. Notably, support for Eclipse, Ruby, PHP, and Python is welcome, altought is not clear the timeline and origin of such features. Windows Azure includes:

Computation Services

– Ability to run Microsoft ASP.NET Web applications or .NET code in the cloud
– Service hosting environment that includes Internet Information Services 7.0 and Microsoft .NET Framework 3.5 SP1
– Security supported by flexible Code Access Security policies
– Small runtime API that supports logging and local scratch storage
– Web portal that helps you deploy, scale, and upgrade your services quickly and easily

Simple data storage services

– Blobs, tables, and queues hosted in the cloud, close to your computation
– Authenticated access and triple replication to help keep your data safe
– Easy access to data with simple REST interfaces, available remotely and from the data center 

Development Tools

– Complete offline development environment, including computation and storage services
– Complete command-line SDK tools and samples
– Visual Studio add-in that enables local debugging

All this is the release of the former Red Dog project. The data storage services in interesing: I guess is the evolution of SQL Data Services, another technology included in the stack. I’m not sure on the relation and dependencies of both technologies. Related links: 

 Learn more about Windows Azure
Video- Manuvir Das- Inside Windows Azure
Video- Steve Marx- Windows Azure for Developers

Live Services

Live Services is composed by building blogs to handle user data and application resource. There is an emphasis on supporting a wide range of digital devices. During last years, Microsoft was pushing towards the device application world, and now is the time to connect anything, anywhere. Yeap! Resistence is futile… you will be connected… 😉

The strong poing is the easy creation of mashups: applications that combine data or content from several sources into a new single integrated application. There is a web service API that can be used to create mashup applications. There are some running application that is this technology, an example: 3d Geology Maps. This site overlays geologic maps on three dimensions. Dozens of applications to view at the Mashups Library.

Learn more about Live Services
View the Quick Apps

SQL Services

SQL Services extends the SQL Server capabilities to the cloud, using web-based services. You can create and store structured, semi-structured and unstructured data. It hosts Microsoft SQL Data Services, that can be accessed via REST and SOAP based web protocols. All this is built on SQL Server database. SQL Services Labs could be used to develop prototypes and incubate projects.

Learn more about SQL Services

Microsoft .NET Services

Formerly Biztalk Service, now the official name is .NET Services (good choice, it has no tie with Biztalk Server). .NET Services are a set of services oriented to cloud-based and cloud-aware applications. They addresses identity, workflow and connection of application:

Access Control

– Standards-based identity providers
– Support for Windows Live ID
– Enterprise directories
– Authorization decision
– Claim based with declarative rules

Service Bus

– Implements the Enterprise Service Bus application pattern
– Register and expose services, crossing network, security, organizational boundaries
– Internet-scale

Workflow Service

– Host workflows (yes, Windows Microsoft Workflow)

There are web and windows tools to consume and manage these services, and APIs to access them from our applications.

Learn more about .NET Services


I was part of the team that develop tools to access and consume these services. It was a challenging mission. In my opinion, all thess tools and services are a significant breakthrough to cloud computing. Since Ray Ozzie arrival to Microsoft, most of these stuff were nurtured by architects and developer, all around the world, and now, at PDC, all was unveiled.

The cloud computing sky is not blue: it’s azure.

Some articles:

Microsoft’s Azure is so 1997 (and Why I Love It)
Microsoft to battle in the clouds
steve clayton- geek in disguise – Clearing Clouds
Web 2.0 and Cloud Computing – O’Reilly Radar

Cloud Computing in my delicious

Angel “Java” Lopez

The new Microsoft baby: Live Mesh

These week, the Redmond giant announced its new creation, Live Mesh (a tech preview):

Thanks to Arvindra Sehmi post:

we now have a list of comments about this new Microsoft baby. Thise new redmonian inception is not easy to describe briefly, but it deserves to take a shot. It is an incursion from Microsoft into Web 2.0 and its own creation, Software plus Service world.

(for bloggers, note the use of links with screenshots, great idea Arvindra!)

This video explains the high level architecture (thanks to Matias Woloski for this link)

In that list of articles, I found a good introduction by the ineffable Mary Jo Foley

Ten things to know about Microsoft’s Live Mesh

Read the point one:

1. The definition. As has become the norm with so many of its Software + Services products and strategies, Microsoft isn’t the best at coming up with a succinct Live Mesh definition. The closest I found (in a Live Mesh reviewer’s guide) was this: “Live Mesh is a ’software-plus-services’ platform and experience from Microsoft that enables PCs and other devices to ‘come alive’ by making them aware of each other through the Internet, enabling individuals and organizations to manage, access, and share their files and applications seamlessly on the Web and across their world of devices.” If I were in charge of defining Live Mesh, I think I’d go with “a Software + Services platform for synchronization and collaboration.”

Here, I detect the reborn of some ideas envisioned by Bill Joy for Jini, a technology that was born too early:

The Jini Technology Vision

Jini technology redefines the concept of a client. Instead of a fixed set of “local” devices, Jini technology supplies the Java client with a federation of remote “plug and play” devices in a dynamic configuration (the Jini Federation) that is personalized for each client. With Jini technology, the network truly becomes the client computer!

All this new move from MS could be the visible result of some of Ray Ozzie’s ideas, expressed years ago in his noteworthy memo:

The Internet Services Disruption

I guess Microsoft is moving more and more to the Internet (remember its Yahoo affaire). That’s a company that embraced the Andy Grove’s motto: only the paranoid survive. There are betting on RIA, Silverlight, web 2.0, rich client… Any number on roulette is covered, even the double zero… 😉

One note: it’s amusing that, after all this effort, Microsoft still reveals its new tools only to US residents. Google, instead, pushed its innovations as beta or whatever, but for all the world at once. Hey, toc, toc, McFly…. some MS VP reading here? 😉

Angel “EverMeshed” Lopez

QCon London 2008

I’ve received an email, from Floyd Marinescu, announcing this “mega” conference. They’ll cover all-about-software-development: agile, DSLs, SOA, SaaS, Cloud computing (I guess grid computing related), .NET, Java, Ruby, Rich Client, Scrum, XP, F#, REST…. It will be the DisneyWorld of all software developers! 😉

Here’s the announce:

You are receiving this email because you opted-in to receive notifications related to QCon London, from the QCon London website. QCon London is taking place in just 8 weeks, March 12-14 and the conference editorial is nearing final. Since our last update in December, a number of important changes have been made to the conference:

  • Google, Yahoo!, Amazon, now presenting in the Cloud Computing Track
  •, eBay, Magus confirmed in the Architectures you’ve always wondered about Track
  • XP founder Kent Beck, and Analysis Patterns & Refactoring Author Martin Fowler keynoting
  • Banking Architectures Track adds sessions from Merrill, Betfair, Credit Suisse
  • GoF Patterns Author & Eclipse Architect Erich Gamma presenting
  • and much more…

QCon is an enterprise software development conference for team leads, architects, and project managers covering Architecture & Design, Java, .NET, Ruby, SOA, Agile methodologies and other timely topics such as DSLs, cloud computing, and bank/finance architectures. Last year’s QCon London had almost 500 registrants, and was covered very heavily in blog space see QCon London blogger coverage & key take aways).  

The track themes for QCon London & track hosts are as follows:
Architectures You’ve Always Wondered About –  Hosted by Redmonk’s James Governor
The last 2 QCon’s featured: Amazon, Linked-In, Yahoo!, eBay, Second Life, and Orbitz architecture case studies
Domain Specific Languages in Practice – Hosted by ThoughtWorks’ Neal Ford
Takes DSLs to the next level by practical applications and tools that are useful today.
Effective Design
Translate a set of abstract ideas into working and functional software in an effective way.
Architectures in Agile – Hosted by POSA author Kevlin Henney
How to integrate the trade-offs related to aspects such as performance, security, scalability and modifiability into an agile process
Banking: Complex high volume/low latency architectures  – Hosted by John Davies & Alexis Richardson
The latest innovations as well as time-proven best practices that architects of banking & finance systems need to know.
The Cloud as the New Middleware Platform – Hosted by EAI Patterns Author Gregor Hohpe
Is the internet becoming the computer?
Implementing Scrum and XP– Hosted by Patterns Almanac author Linda Rising
Leading practitioners will present and explain how Scrum and XP are implemented in the most effective way.
Java Emerging Technologies – Hosted by Java Concurrency Author/spec lead Brian Goetz
The previous QCon covered: JRuby, Grails, Server-side OSGi, DSL development, Batch Processing
.NET in the Enterprise – Hosted by Matt Deacon
.NET has brought Microsoft’s platforms into many business-critical applications, back-office, and server-side solutions.
Programming Languages of Tomorrow
Erlang, F#,, Intentional and Scala. How can we best leverage them in our next software project?
SOA, REST and the Web – Hosted by InfoQ’s Lead SOA Editor Stefan Tilkov
REST & SOA, Internet Scale Integration, REST & WS Myths
Browser & Emerging Rich Client Technologies – Hosted by InfoQ lead RIA/Java editor Scott Delap
Silverlight vs. JavaFX/Consumer JRE vs. Adobe Flex/AIR vs. Google’s Ajax RIA stack
The Rise of Ruby
Learn how to best take advantage of what Ruby has to offer
The first two QCon were well received, below are some comments from bloggers who attended our most recent QCon:

  • David Forbes – Exhilirated after gorging on brain candy this week, I have a moment to reflect on what just happened. QCon was the right place to be. I can’t imagine where else I would have rather been. If I had the week to do again, I would probably march right down to the Westin…again.
  • Denis Bregeon – I was very happy with it. Most of the talks tickled my imagination and that is the primary thing I was looking for. Many others gave me details on more technical subjects that I wanted to learn about.
  • Srini Penchikala – I was at the QCon conference in San Francisco last week. It was a great experience to be there. I learned a lot not only from the presentation speakers and panelists but also from the attendees who came from different countries (England, Syria, Australia to name a few) and companies.
  • Alex Olaru – Great conference: excellent speakers, very relevant topics, just enough product pushing without it becoming annoying. All in all a conference I would highly recommend to any architect or project manager.
  • Ola Bini – Last week I attended QCon San Francisco, a conference organized by InfoQ and Trifork (the company behind JAOO). It must admit that I was very positively surprised. I had expected it to be good, but I was blown away by the quality of most presentations.
  • Martin van Vliet – All in all, this was a good conference and more than enough reason to look forward to the next QCon, next year in London.
  • Pete Lacey – A wonderful conference made better by being able to meet many people face to face for the first time…

See also past QCon/JAOO talks available online on InfoQ:

Registration for the 3 day conference is 1180£ until Feb 22nd, and 1220£ after March 11th. The conference will be held at the Queen Elizabeth II Center, like last year.  Join us at QCon London!

Angel “Java” Lopez

The making of LitwareHR

 During the last year, I participated of the making of LitwareHR, a SaaS reference implementation of Microsoft. I was working in a team, at Southworks. At the end of the project, a video was made to show, in a funny way, some of the ideas of the project.

Now, you can see the video at

MSN Video – The making of LitwareHR

The “stars” are Gianpaolo Carraro and Fred Chong, from Microsoft.

 I have a minimal intervention, but you know: no small script for a great actor.. 😉

Angel “Java” Lopez

TheServerSide.NET on Software as a Service

There is a post written by Jack Vaughan:

.NET Blog View: Microsoft launches guidance for Software as a Service

It’s interesting that Vaughan writes about the ASP concept: Application Service Provider. And points towards Google, SalesForces, and Windows Live apps. For me, these are interesting times. After the Internet Bubble, few companies have reached an income level that make them profitable. SalesForce is an exception: an after-bubble survivor, its model shows the maturity of the concept, and the reality of the results.

IBM, Microsoft, Google, and more, are after the Long Tail of SaaS. In my opinion, such big companies doesn’t have the focus to run a SaaS effort, oriented to the every day apps that more business need to run. The game is open to the new, focused companies, that concentrates all its forces on the SaaS arena.

And you, what kind of SaaS application are you thinking about?

Angel “Java” Lopez

Software as a Service sample application from Microsoft

A new sample application was released from Microsoft, implementing Software as a Service ideas, patterns and concepts. You can download from

A description from Microsoft:

LitwareHR is a fictitious HR application providing recruitment management software delivered as a service. The most important aspect of this application is not what the application does, but how it does it. Using the latest Microsoft technologies such as .NET Framework 3.0 and SQL Server 2005, LitwareHR implements single-instance multi-tenancy patterns. These patterns, previously described in our whitepapers, are available in the MSDN SaaS Architecture Center.

There are source code, documentation, and webcast.

A community site dedicated to this project was published at

Bonus material, “behind the scenes”, “deleted scenes” at

Angel “Java” Lopez

AjSaaS: a sample open source Software as a Service application

Today, I’ve been busy writting a new open source sample application, using ASP.NET 2.0 and MS SQL Server 200x. As usual, I began writing down the model of the application and generating the code using my AjGenesis code generation engine. I love that project! 🙂 It frees me from repetive and cumbersome tasks, as tedious web page creation, or long stored procedures code.

Now, I have a system with:

– Tenants
– Applications
– Users
– Roles

Each user belongs to a Tenant. There is the “main” Tenant, one that provides the AjSaaS application. You can define new applications, and create new tenants (enterprise that uses applications). A tenant can use many applications, and an application can be used by many tenants.

Each tenant has a collection of users. Each application has a collection of roles. A user can plays many roles (in differents applications, if his/her tenant has adquired many services).

This is my first day of work. I’m now working on implementing membership and role providers based on the above schema (using the provider features of ASP.NET 2.0).

After that feature, the next steps are:

 – Implement one or two sample application to put under the system (I’m planning to implement some entities with CRUD functionality).

– Implement user-defined entities as in

Building an End User Defined Data Model – Part 1
Building an End User Defined Data Model – Part 2

using some ideas published at

Multi-Tenant Data Architecture

The final idea is to extend the system up to level 0,1,2 of the maturity model at

SaaS Simple Maturity Model

Some business rules would be implemented with customizable Workflow Foundation workflows, or something similar usign AjBasic as a Saas Code Language (a la SalesForce, they included a controlled programming language to extend their systems).

I’m in my sabbatic week. When I finished with this week, I’ll publish the first version of code, with open source license.

Angel “Java” Lopez

Programming language for SaaS

One of the problems to resolve in a Software as a Service, is customization. Another related problem, is extensibility and integration with enterprese in-house application.

Although the customization can be obtained via parametrization, and ad-hoc metadata configuration, your needs can easily scalate to an special level that requires more features.

A way to extend and implement such customizations, is using programming. But instead of using a traditional programming language, a SaaS application can use a controled, and specialized language, totally oriented to the domain or line of business of such application.

Notably, adopted such approach, with the Apex programming language:

The language runs on the server. According to Salesforce page:

The key technology of Apex is a new programming language that allows developers to do something entirely new and powerful to run business logic on servers. With the release of this language, Apex developers will be able to use the same tools that’s own development team uses to build our own apps, including our flagship CRM products.

You can add code to events on buttons, links inside Salesforce’s web pages. This is an interesting solution, that deserves study and experimentation. I’d want to incorpore such feature in an extensible SaaS application. Don’t you?

Angel “Java” Lopez