Opinari
Subscribe
Patents, Attributes, and Indigo
#
Monday, January 12, 2004
Software patents are at best a mixed blessing, but they’re nevertheless a reality. Last year, just before Thanksgiving, Microsoft was granted US patent #6,654,953,
Extending program languages with source-program attribute tags. The patent covers the idea of embedding attributes in programming languages to easily provide applications with extra services.
Attributes are a cool idea, one with built-in support in the .NET Framework’s CLR. They’re also used extensively in Microsoft’s forthcoming Indigo technology. For instance, the basic skeleton of an Indigo class might look something like this:
using System.ServiceModel;
[Service]
[Security(ConfidentialitySupport=true)]
public class Example
{
[ServiceMethod]
public int Method1(int x) { . . . }
[ServiceMethod]
[TransactionOperation]
public int Method2(int x) { . . . }
}
In this example, everything inside square brackets is an attribute. Some of them, such as Service and ServiceMethod, indicate that this class and its methods can be accessed via Indigo. Others, such as the Security and TransactionOperation attributes, cause extra services to be provided (in this case, confidentiality through encrypted communication and an atomic transaction, respectively). By relying on attributes, Indigo makes adding complex services relatively simple.
I’m looking forward to seeing how the Java world responds to Indigo. Will this new patent mean that using attributes is no longer an option for Java’s owners or for anybody else outside the Windows universe? It’s hard to know, as Microsoft seems to have largely adopted the common industry practice of acquiring patents for defensive reasons rather than to prevent competitors from using ideas. Still, that the patent exists at all might give pause to anybody planning to incorporate this style of attribute into a future design.
0 comments ::
<< Home