rwandering.net
The blogged wandering of Robert W. Anderson
Archive for Grid Computing
November 17, 2009 at 6:41 pm · Filed under .NET, Grid Computing
Lots of improvements to EF for 4.0:
- Model-first development.
- Lazy loading through relationships (i.e., no longer have to call Load)
- POCO (i.e., define your own data classes against a model).
- POCO only (i.e., define the model fully in code).
- Code Generation options using the new T4 facility of VS 2010.
- Testability improvements through IObjectSet
- Can override SaveChanges
- Better disconnected workflow (both by writing a little code and a no-code option that uses a different code generator).
- Much better SQL (more compact, more efficient)
- Execute arbitrary SQL
- Easier Stored Procedures
- Functions (a little strange how this was implemented, but now they are available).
- Foreign Keys in the entities (no more manual interpretation of the Reference!)
- Better Binding for forms apps and WPF
Pandelis, what do you think?
Tags: .NET4.0, Entity Framework, PDC09, PDC2009
November 17, 2009 at 6:31 pm · Filed under .NET, Grid Computing, Web 2.0
At last year’s PDC, I posted
It is the openness of this platform, the ability of developers to mix and match the different components, and to do it between the cloud and in-premises solutions that makes this such a winner.
This last point is an important one. Microsoft is in a unique position to help enterprise IT bridge to the cloud. While I don’t think Amazon and Google will cede that market to Microsoft, their current offerings aren’t a natural fit.
The offering was rich then, but since then Microsoft has continued to push these offerings forward dramatically.
At the time, my biggest concerns were the one-size-fits-all approach to their provisioning model and their lack of full trust (two things that could make it harder to deploy the Digipede Network onto Azure). Today those issues have been taken off the table and help support many more use cases, opening up Azure even more to non-Microsoft technologies and fortifying the extremely important IT bridge.
So what are the improvements in openness?
Allowing full trust opens up the door to, well anything. Unmanaged code, PHP, MySQL, Java, TomCat, etc. can all run on Azure. Matt Mullenweg of Automattic demonstrated a WordPress instance running that way. Kind of anti-climactic, because it would have been a big deal if wordpress.com was moving to Azure. Simply running a WordPress instance isn’t really that interesting.
Custom VM images are also coming to Azure which will make it much easier to put whatever you want on a VM and deploy it efficiently.
For IT?
Too many items here to enumerate. SQL Azure integrating into SSMS; Azure integrating into MOM; SQL synchronizing with cloud instances; (this list really does go on and on . . .).
Another important part of this IT bridge? Not Microsoft’s new App Server, AppFabric. Though I am excited about this – it is something that has been missing from the Microsoft stack – the key point here is that it runs on premises and in Azure.
Conclusion?
These new features in Azure push Microsoft out even further than the other cloud vendors. No one else has the depth and breadth in tool support and service offerings. No one else is innovating so quickly on so many parallel fronts.
Will Amazon and Google cede the space? Of course not, but I think they’ll need to reposition their cloud brands.
Tags: AppFabric, Azure, PDC09, PDC2008, PDC2009
May 6, 2009 at 9:23 pm · Filed under .NET, Grid Computing
As I noted recently, I have been working with Giles Thomas and Glenn Jones at Resolver Systems on a sample mixing distributed IronPython objects with Resolver One spreadsheets.
I like those guys. They are smart and do excellent work.
Anyway, they released the sample earlier today. From their site:
As of version 1.5 (which is currently in beta), the world’s coolest spreadsheet can use Digipede Network grid computing to distribute and execute workbooks in parallel. The example on the Exchange is based on the excellent IronPython sample created by Robert W. Anderson of Digipede. The Digipede Network is a brilliant way to get distributed, parallel computation on Windows. It only took a few minor changes to convert Resolver One to run on the Digipede Network and to get the IronPython sample to execute Resolver One workbooks.
Giles gives some more background to the path that got us here on his recent post, Resolver One and Digipede.
The combination of our two products offers a pretty elegant solution. Like I said before,
Try doing that with a spreadsheet or grid that isn’t based on .NET . . .
. . . like Excel and Windows HPC Server. No, don’t. Trust me. It is really hard, complex, and brittle.
Tags: Digipede, Excel, grid, HPC, IronPython, ResolverOne
April 17, 2009 at 9:50 am · Filed under .NET, Grid Computing
We had a call this morning with Giles Thomas and Glenn Jones of Resolver Systems. They demonstrated Resolver One running on the Digipede Network.
They used my IronPython Worker sample and customized the front-end Python code, leaving the C# adapter as-is. With very little coding they had an elegant grid-enabled spreadsheet. Try doing that with a spreadsheet or grid that isn’t based on .NET . . .
Giles said they will have support for this in Resolver One 1.5, coming out in the next couple of weeks.
Very cool.
I’ve just installed Resolver One to take a closer look. Already I’m impressed, but I’ll leave that for a future post.
Tags: Digipede, Excel, IronPython, Python, ResolverOne
April 6, 2009 at 6:31 am · Filed under .NET, Grid Computing
. . . or IronPython-ipede (Part II).
I have been playing with IronPython a little. With the release of Digipede Network 2.2, I am now able to post the sample I wrote. It shows how to distribute IronPython objects on the Digipede Network. You can find it on the Digipede community site. See the posting there for details and download instructions.
The sample uses IronPython 2.0.1 and the included version of the Microsoft Dynamic Language Runtime (DLR). While I focused on IronPython in this sample, it would be pretty easy to expand it to support other DLR-based languages.
Comments welcome. I am specifically interested in feedback on DLR integration and initializing ScriptScope objects for each worker thread. It seems that I should be able to do some of this only once at global scope.
By the way, one thing I like about this sample is that it shows how to keep user code completely de-coupled from the Digipede Network while still taking advantage of our deployment and payload distribution model. This has always been supported by the Digipede Network, and this makes a good example.
Tags: .NET, Digipede, DLR, IronPython, Python
February 11, 2009 at 9:02 pm · Filed under Grid Computing, Miscellaneous
I’ll be at the University of California, Berkeley EECS Annual Research Symposium (BEARS 2009) tomorrow, February 12th.
Looks like it will be an interesting program.
If you are going and want to meet up, email me at robert at digipede dot net.
Tags: BEARS2009, Digipede, Events
February 9, 2009 at 11:03 am · Filed under .NET, Grid Computing
I have been taking a closer look at IronPython for a prospective customer. Never being happy with “shoulds”, I am going to show how to distribute IronPython objects on the Digipede Network.
The first thing I did get our old Python sample running in IronPython. This was the first user-contributed sample (thanks to Sean True). That sample (see it here) uses Python COM libraries to invoke a job with the Digipede Network COM APIs. This didn’t submit objects, just executed a command-line application.
I’m happy to say that the code required very little modification to run under IronPython. The only difference is in the syntax of the “import” commands. Kudos to the IronPython team.
I’ll post the working code once I get a little farther.
Next step: distribute IronPython objects. Fairly straightforward, but I’ll write a reusable C# Executive to load the IronPython class definition.
Tags: .NET, Digipede, IronPython
October 27, 2008 at 11:42 am · Filed under .NET, Grid Computing, Web 2.0
Microsoft’s long awaited cloud platform has finally been unveiled here at PDC 2008. Late to the Internet, Microsoft hit it hard. Late to the cloud, Microsoft is doing the same with Windows Azure. Happily, this will put an end to all the guessing about what Zurich, Red Dog, biztalk.net, SSDS, Live Mesh, etc., actually are.
Of course, now begins the discussion of how all these pieces fit together.
This is not a simple approach like Amazon’s EC2 or Google App Engine. Not to trivialize either, but they are certainly easier to understand. Try explaining them to the proverbial grandmother — no problem, especially if you leave out virtualization and pythons
(preemptive comment: I know AWS is much more than EC2 and that bigger and better things are coming from Google).
Regardless, the Microsoft Azure is multi-faceted. In typical Microsoft fashion, there is a lot for a developer to choose from:
- Azure Storage, Management, and Compute. Run WCF/ASP.NET based services, with work queues and data storage.
- Microsoft .NET Services, nee biztalk.net (wrote about here). This gives you an Internet Service Bus, Access Control, and Workflow Services. Messages and workflow in the cloud connecting other cloud and enterprise offerings. Very big deal.
- Microsoft SQL Services, nee SQL Server Data Services or SSDS. Eventually a relational model in the sky, currently not too different from Azure Storage.
- Live Services: Not too much detail on this today, but this is clearly what was “Live Mesh”: a rich synchronization framework, “live operating environment” for writing applications to across the Web and on user’s devices.
- Windows Live (Live Office, Live Sharepoint, Live Dynamics CRM, etc). In-cloud applications extensible by partners and users with in-cloud and in-premises solutions.
It all does fit together, and will be of immediate value to developers. As Marc Jacobs of Lab49 said to me afterward,
We could make use of all of these services today.
Damned straight. It is the openness of this platform, the ability of developers to mix and match the different components, and to do it between the cloud and in-premises solutions that makes this such a winner.
This last point is an important one. Microsoft is in a unique position to help enterprise IT bridge to the cloud. While I don’t think Amazon and Google will cede that market to Microsoft, their current offerings aren’t a natural fit.
Taking this all together — not forgetting Microsoft’s leading developer productivity story — it looks like a home run to me.
Tags: .NET, Azure, Microsoft, PDC, PDC2008, Reddog, Zurich
September 4, 2008 at 9:58 am · Filed under Grid Computing, Web 2.0
Google releases a new browser. The world declares “browser war” with some apprehension and relish. Web developers are cringing because browser compatibility is a major source of effort, cost, and frustration for software developers.
Q. Why would Google do this to us? Just to take away Microsoft browser share?
A. No.
Q. Are they doing this to extend the “Google OS” to the desktop in a way they control?
A. Probably, but that isn’t even their first concern.
Q. So, what is going on?
A. Well, I’m glad you asked.
Google is working to make their JavaScript-view of the Web as powerful as possible. This makes sense given their enormous investments in JavaScript and in their own application suite.
Contrary to the approaches of Microsoft and Adobe with their Rich Internet Applications (RIA) frameworks, Google has focused on JavaScript. Where Microsoft and Adobe are building a better user experience inside of a container, Google is creating a better user experience through dynamic HTML and AJAX techniques.
Their developer model includes building out tooling to make it easier to author AJAX applications. This includes the efforts made in the Google Web Toolkit (GWT) to enable modern IDE tooling for AJAX development. This allows developers to build maintainable object-oriented applications (in Java) that get converted and optimized to JavaScript. Plus it promises cross-browser compatibility.
On the client side, they have Google Gears to enable local storage, improved caching support, and offline mode.
Q. So what have they been missing? A browser?
A. Not exactly. They’ve been missing a JavaScript client runtime engine.
Google has made great advances in AJAX application development and tooling, but they have had to rely on others to provide reliability, responsiveness, performance, etc.
And that is what Chrome is about: taking control of the runtime engine for Google applications. This makes the Google applications way more compelling. More specifically, Chrome is about delivering that engine. As Google says, they would love it if other browsers adopt the engine too. I buy that.
Of course, by that time Chrome will be differentiated from its JavaScript engine. By then Chrome will be about the Google OS.
Tags: Adobe, Chrome, Flash, Google, JavaScript, Microsoft, Silverlight
July 17, 2008 at 7:14 pm · Filed under Grid Computing, Web 2.0
Version 2.6 of WordPress came out the other day. From the announcement (WordPress › Blog » WordPress 2.6):
Version 2.6 “Tyner,” named for jazz pianist McCoy Tyner, contains a number of new features that make WordPress a more powerful CMS: you can now track changes to every post and page and easily post from wherever you are on the web, plus there are dozens of incremental improvements to the features introduced in version 2.5.
These feature changes are actually pretty big. Revision tracking? Support for Google Gears? Full support of SSL (finally)? Theme previews? Really cool “Press This” button? Big.
This feels to me like a major release. Probably not as major as the 2.5 release, but still pretty major.
In my book, 2.5 should have been version 3.0 and this one should have been 3.5.
Does the version number matter? Yeah, it does. It isn’t just about marketing. It signals something about the maturity of the product.
Disclaimer: I am not immune to such version number mistakes. After all, the Digipede Network 2.1 should have been version 2.5.
Tags: Digipede, Wordpress
Next entries »