Dave Johnson on open web technologies, social software and software development
This is the second in my series of Web Integration Patterns. Check out the intro at this URL http://rollerweblogger.org/roller/entry/web_integration_patterns
Make separate web sites and applications appear to be one by using common user interface elements for navigation.[Read More]
This is the closest thing to a blog post that I've written lately, a post to the OpenSocial specification group on aligning OpenSocial with RDF and Linked Data:
Link: RDF and OpenSocial
This is a topic of interest to me, so I'll try to elaborate.
First, I want to point out that RDF is not a representation, it's a way to model data and it's multiple ways to represent that data (in XML, JSON, etc.). I think the real question is: how do we enable OpenSocial to hook into the RDF-based web of "Linked Data" that is rapidly growing up around scientific data, government open data and the academic world. I'm not going to go into the benefits of Linked Data in this post, but I will disclose that I work for a company that uses RDF as a common data model to enable loosely coupled integration across our web application products (see also Jazz Integration Architecture  and OSLC ). We'd like to be able to integrate with OpenSocial services in the same ways.
I'll explain the basics of RDF. RDF is way to model web data and ways to represent that data in XML, JSON, Turtle, etc. The RDF data model is simple, we have resources identified by URIs and property values associated with those resources. Resources can have types, each type is identified by a URI. Property types have URIs too. Once you have defined your data model in terms of RDF types and properties, you can represent resources and their properties using RDF representations. There's RDF/XML for XML, there's RDFa for embedding properties in HTML. There's are JSON representations too, but not a standard for JSON yet.
So, to bring OpenSocial in-line with the world of Linked Data, we would define each class of OpenSocial objects as an RDF type, with a URI. We would define each OpenSocial property as an RDF property, with a URI. In some cases, we'll want to use existing properties, like the Dublin Core title, name, etc., and in some cases we'll want to define entirely new types and properties.
As a starting point, I think we would do the following:
* In OpenSocial v2, we would define all OpenSocial objects and properties as RDF types in the OpenSocial Specs. This means simply assigning a URI to every class and every property we define, using standard properties where appropriate and defining new ones as needed. Object and property names would rename the same and we'd have what is essentially an RDF mapping built into the spec. Existing OpenSocial representation formats would stay the same, but we'd add some new RDF representations.
* We'd introduce an optional new OpenSocial spec that services MAY implement: the OpenSocial RDF Specification. The specification would simply require that a service provide RDF representations of it's resources via content-negotiation. The service could offer RDF/XML or HTML with RDFa, JSON/RDF or all of the above.
That's a starting point and I think we could come up with some other ideas if we thought more about use cases. Anybody else interested in aligning the worlds of OpenSocial and Linked Data?
This sounds cool. I'd love love to see the slides or better yet, a sceen-cast.
Collaborative estimation and planning is a key concept for all agile development process frameworks. We will present a solution for playing "Planning Poker" that enables distributed development teams to estimate the effort of work items and build consensus in a collaborative way.
The prototype uses Google Wave as a collaboration platform and OSLC (http://www.open-services.net) for seamless integration with the developer IDE and work environment. We will show a demo on how a distributed team can estimate user stories and tasks from a product backlog in a collaborative way, and instantly use the results as the base for further sprint planning.
Additionally, attendees will learn some basic concepts and features about Google Wave, OSLC and IBM Rational Team Concert.
Mainsoft's Team Concert to Lotus Connections integration is getting better and better. I know this because I spent about 12 hours last week offering demos of the product at Innovate 2010. The except below is from a blog post on Jazz.net about the newest preview release. You can try it now. There's a download link at the end of the post and, like Team Concert, it's nice and easy to install and configure.
Build a Community around Your Project
Growing a social network around a software project brings developers up to speed faster. New hires and teams that are added to a core team will find all the information they need in a central Lotus Connections community, including blogs, forums, wikis, file repositories, and bookmarks. These collaboration systems offer a broad teamwork base for any software project. For example, wikis can hold product specifications, blogs can be used to publish roadmaps to a wider audience, forums can be used to gather feedback from beta testers, and a file repository hosts nightly builds with download statistics and commentary features.
Creating a new Lotus Connections community, or linking to an existing one, only takes a couple of clicks. The administrator sets the Lotus Connections community in the Social Network tab under project management.
Once the project community is created, all project members are added to it and as new developers join the project, they automatically become members of the project community.
From my point-of-view, this was the big news from Innovate 2010: integration, linking and process automation across the software lifecycle from requirements, dev, build and test -- based on open interfaces defined by OSLC:
Dave Thomson: Why is this important? The activities involving requirements, development, build and test are not process silos. Integrating these disciplines through process automation, links between artifacts, and reporting across these links improves the productivity of teams while also improving the quality of the deliverables from those teams.
To focus this effort, were bringing Rational Team Concert, Rational Quality Manager, and a new requirements management product tentatively named Rational DOORS Requirements Professional more closely together and calling this set of products the Rational Workbench for Collaborative Lifecycle Management.Whats a workbench? A Workbench is a term we use to describe a combination of products, services, and best practices that are designed to work well together to solve a particular problem.
IBM is going to be at Google I/O again this year, talking about OpenSocial and giving demos of new OpenSocial features in IBM products. Randy Hudson of IBM/Rational will be there to show how OpenSocial Gadgets can be used in Jazz-based product dashboards (introduced in Jazz Foundation 3.0 Milestone 5).
And IBM's Mark Weitzel, who happens to be an officer of the OpenSocial Foundation, will participate in panel discussion on Best practices for implementing OpenSocial in the Enterprise.
Best practices for implementing OpenSocial in the Enterprise
Social Web, Enterprise - Mark Weitzel, Matt Tucker, Mark Halvorson, Helen Chen, Chris Schalk
Enterprise deployments of OpenSocial technologies brings an additional set of considerations that may not be apparent in a traditional social network implementation. In this session, several enterprise vendors will demonstrate how they've been working together to address these issues in a collection of "Best Practices". This session will also provide a review of existing challenges for enterprise implementations of OpenSocial.
Session type: 201
Attendee requirements: General understanding of OpenSocial technologies. Some Enterprise experience is also recommended.
Tags: OpenSocial, Enterprise
Date: Thursday May 20
Here's something I've been closely involved with during my entire IBM career (almost 9 months now): making software development more social by integrating Rational Team Concert and Lotus Connections.
In case you don't know, Team Concert is Rational's "complete agile collaborative development environment" with integrated source code control, issue tracking, build management and very slick Eclipse and web-based client UIs -- it's a collaborative environment for software developers. Lotus Connections is IBM's comprehensive social software suite with blogs (Roller based!), wikis, social bookmarking, forums, file sharing, social networking and more -- an environment for more general collaboration.
IBM partner Mainsoft has developed an integration between Team Concert and Connections and it's now available as a tech preview. The product makes it easy for developers to hook a a software development project up to a Lotus Connections and enable software developers to collaborate with the much wider community of folks involved with a software project including end users, subject matter experts, executives and other stakeholders. As you can see from the list of features, it's a pretty tight integration.
If you want to learn more about the integration, check out the links I referenced above. There's also a short podcast available at Developer Works and there will be sessions at Lotusphere 2010 this month and (with luck) at Rational's Innovate 2010 Conference in June.
It's been over a month since the Enterprise 2.0 OpenSocial panel and since we were never able to get a group blog post together, I've decided to publish a short summary of what I said about IBM on the panel. I'm paraphrasing myself from memory so this is not exactly what I said but it should be pretty close:
IBM has been successfully innovating in the area of browser-based components, also known as widgets or gadgets, and social APIs for years now. If you haven't seen the IBM Mashup Center you should visit the IBM booth and take a look at the demo. It allows you to create Web 2.0 style mashup applications by dragging-and-dropping widgets into place and wiring them together. You've probably heard of Lotus Connections. Connections is IBM's social software suite and it includes blogs, wikis, forums, social bookmarking and more. Each one of those components features a comprehensive AtomPub-based REST API.
We're working with the OpenSocial community to ensure that the specification meets the needs of our customers and is able to interoperate with our existing iWidget technology (and I think I mentioned the OpenAjax Hub here too). You can see most of the improvements that we're interested in the slides, so I won't go into detail now, but I will mention a couple of things for example: we would like to see better inter-gadget communication, specification modularity (coming in OpenSocial 1.0) and a stable and predictable specification change process.
I work for Rational, the part of IBM that creates tools for software development and delivery, something that is also social and collaborative in nature. We're enthusiastic about OpenSocial and we hope to enable use of OpenSocial Gadgets in Jazz-based product dashboards sometime in 2010. We may also support some of the OpenSocial Social APIs, but we are still learning and experimenting. Jazz products are developed in an open and transparent way so you can track our progress via our wiki and work-items at Jazz.net.
I won't try to paraphrase what the other panelists said, I'll let them do that, and I'll leave out my SocialSite pitch for now as most of my readers have already heard it. I'll put together an update on SocialSite during the next month and I think I'll have some good news to report.
I've attended every JavaOne since 2004, but this year I've got new job and a new conference to attend. This year I'll be traveling to Orlando, FL and attending the Rational Software Conference also known as #rsc2000 in the twit'o'sphere.
I'm not going to be giving a talk, but I will be manning a demo pedestal and showing some of what I've been working on in my first couple of months at IBM: working on getting Rational Team Concert and other Jazz-based products to work well with Lotus Connections, IBM's social software suite which includes communities, forums, blogs, bookmarking, social networking and wikis (coming soon in Connections 2.5).
Why would you want to use Team Concert with Connections? It's all about connecting developers to community, helping developers use social software tools to inform, share and collaborate with the wider community of people that support, manage, sell and use the software.
The tentative plan that we've outlined for all (registered users) to see on the Jazz.net is all about making it easy to setup and integrate community infrastructure for a new software project.
For example, wouldn't it be nice if, when you setup a new project in Team Concert you'd have the option of setting up an integrated Lotus Connections community complete with a project blog, discussion forum, wiki space and shared bookmarks? Shouldn't those blogs, forums and wikis be searched when you do a project search and shouldn't it be dead-simple to fire-off a blog entry or forum post to start a community conversation about a work-item or any other Team Concert artifact? We think so and we think that's just a start; there's lots more we can do.
If you're going to be at RSC 2009, please stop by and say hi. I'll be on duty from 5-8PM on Monday and most of the day Tuesday. Whether you're there or not, if you've got ideas about developer tool and social software integration, I'd love to hear from you.