Slashdot Mirror


Microsoft To Open Source Cloud Framework Behind Halo 4 Services

angry tapir writes Microsoft plans to open-source the framework that helps developers of cloud services like those behind Halo 4. Project Orleans is a framework built by the eXtreme Computing Group at Microsoft Research using .NET, designed so developers who aren't distributed systems experts can build cloud services that scale to cope with high demand and still keep high performance. The Orleans framework was used to build several services on Azure, including services that are part of Halo 4. The code will be released under an MIT license on GitHub early next year.

27 of 50 comments (clear)

  1. Halo MCC by Anonymous Coward · · Score: 1

    Should've open sourced it before Halo MCC was released. Would've saved Microsoft a whole lot of headaches.

    1. Re:Halo MCC by ncmusic · · Score: 1

      Thats basically what the Orleans framework does for Halo4 is the matchmaking.

      This isn't true

  2. First they... by sydsavage · · Score: 1

    Ghandi quote in 3... 2... 1...

    1. Re:First they... by Guspaz · · Score: 4, Funny

      "Our words are backed with NUCLEAR WEAPONS!"
      - Ghandi

    2. Re:First they... by binarylarry · · Score: 1

      Boom Bitch!

      --
      Mod me down, my New Earth Global Warmingist friends!
    3. Re:First they... by s.petry · · Score: 1

      Is that NUCLEAR or NUCULAR?

      --

      -The wise argue that there are few absolutes, the fool argues that there are no probabilities.

  3. please keep closed! by Masked+Coward · · Score: 2

    Whatever it is that made Halo 4 (cloud-based or otherwise) should remain closed. Or better yet, incinerate it.

    1. Re:please keep closed! by grcumb · · Score: 1

      Whatever it is that made Halo 4 (cloud-based or otherwise) should remain closed. Or better yet, incinerate it.

      Agreed. 'Software that makes it easy for non-experts to do expert tasks' will one day be recognised for its role in causing the downfall of civilisation as we know it. By then, of course, it will be too late.

      Some among you may think that's overstating things. Some among you are also .NET developers, so what do you know?

      Seriously, though: From the Airbus crash to high frequency trading to the Sony hack, examples abound of how enabling and empowering mediocrity is the first ingredient of every modern tragedy.

      --
      Crumb's Corollary: Never bring a knife to a bun fight.
    2. Re:please keep closed! by donaldm · · Score: 1

      Whatever it is that made Halo 4 (cloud-based or otherwise) should remain closed. Or better yet, incinerate it.

      Well it is designed to run on .NET which is open source as well but licensed under Reasonable_and_Non_Discriminatory_Licensing which if you read this seems like a minefield full of flowers since Microsoft holds lots of patents on the all over infrastructure. Basically this will be a Microsoft only thing. Other companies enter at their peril. :)

      --
      There ain't no such thing as proprietary standards only proprietary formats. Standards are by definition open.
    3. Re:please keep closed! by Shados · · Score: 1

      .NET is slowly being "re-opensourced" under MIT license though.

    4. Re:please keep closed! by Opportunist · · Score: 4, Insightful

      If it didn't lead to cargo cult programming I would maybe even agree. Sadly, that's exactly where we're heading. What encapsulation and abstraction SHOULD bring us is less reinventing of the wheel and more focus on the task at hand. What it DOES get us is more and more people who create software we depend upon who don't have the foggiest idea of just what they're doing.

      This is actually an issue. And I'm not even talking about when you ask someone who claims to be a programmer why he chose this over that sort algo and he looks at you blankly, asking "what's the difference"? Or, my personal favorite, "'cause that one used one parameter less so it has to be faster".

      --
      We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
    5. Re:please keep closed! by Dutch+Gun · · Score: 2

      Well, yes, there are plenty of crappy programmers out there. And some developers always are looking for ways to make things simpler for everyone by creating all-encompassing frameworks, but in the end, almost invariably, it does lead to a lot of cargo cult programming practices with an over-reliance on frameworks and little understanding of how things work internally.

      That being said, there's nothing wrong with using higher-level systems and frameworks so long as you understand the tradeoffs you're making. I'm an expert C++ programmer (videogame development), but I always turn to C# / .NET for internal tools, because I'm so much more productive in that language. The tradeoff, of course, is that the tools tend to be much less efficient, as well as some extra work for writing interop with native code. It's not as much of an issue since I can assume we have more powerful development machines using those tools, and high-speed is less critical than efficient workflow, functionality, and safety.

      I think it's the same sort of tradeoff you'd be making when using this sort of framework. It's never going to be as optimal as a carefully tuned, custom crafted solution. As such, for extremely large or complex systems, or anything that absolutely demands extreme efficiency, you'd be better off with custom solutions written by experts. However, for projects with more modest goals, it could be that the requirements in productivity outweigh the costs of a custom, low-level solution. As long as the decision is made knowing these tradeoffs, it's fine.

      The problem is that the vendor never tells us about these tradeoffs. For years, Microsoft touted C# / .NET as the next big thing, and told us that "pretty soon" we were going to see performance comparable to native code. It never happened. Natively compiled C++ still kicks the crap out of managed code in real world scenarios. Most major client-side applications are still written in native code. I suspect it will be similar for this sort of platform. Yes, it will work, but it's never going to be nearly as optimal or flexible as a custom solution expertly designed and optimized for the particular task at hand.

      --
      Irony: Agile development has too much intertia to be abandoned now.
    6. Re:please keep closed! by hairyfeet · · Score: 1

      But with the exception of games and maybe HFT is there any reason we should give a shit? Seriously computers are soooo insanely overpowered now it isn't funny so if this language is 4% slower than that language but is a hell of a lot easier to work with who cares? We got more cycles than we know what to do with anyway!

      --
      ACs don't waste your time replying, your posts are never seen by me.
    7. Re:please keep closed! by Dutch+Gun · · Score: 1

      From someone who uses both C++ and C# on a regular basis, my experience has been that the difference is fairly significant, not just 4%. That aside... you ask who cares? Examples:

      Demanding Applications
      If your app is extremely large, complex, or graphically intensive, you can probably benefit from a native performance boost. There's a reason office suites and graphics programs are written in C or C++. Games, of course, fall into this category as well.

      Simulations
      In scientific simulations, there's no such thing as "fast enough". These guys still require supercomputers on occasion, and you can bet they're concerned with the efficiency of their code, since they typically have to rent time on them.

      Small-form Devices
      For more computationally constrained platforms, such as in tablets, phones, and now even watches or other in-home smart devices benefit from improved speed and tighter control of memory. Also, keep in mind that lower CPU usage means more efficient battery use, which is critical for many small devices.

      Large-scale Server Applications
      For server-side applications, run-time efficiency can actually trump programmer productivity in importance when scaling up to very large numbers of users, like Google, Facebook, Microsoft, or Amazon has to do. A 10% increase in efficiency leads directly to a non-trivial savings in power costs of your server farm, so in these scenarios, efficiency can be very important. Of course, when Microsoft is renting you it's servers, it's more than happy to have you use C#, since you're the one paying for the servers. My bet is that their own command and control code is completely native.

      Today's programming world is especially diverse - much more so than it used to be. Not everyone is writing business apps for desktop PCs.

      --
      Irony: Agile development has too much intertia to be abandoned now.
    8. Re:please keep closed! by gbjbaanb · · Score: 1

      My bet is that their own command and control code is completely native.

      mine too. See Herb Sutter's speech at Build 2011, (Here's a transcript)

      What happens in the Datacenter? Citing a study, Mr. Sutter claims that the biggest cost is Hardware and Power. These account for 88% of the total cost of running a Datacenter. Performance/Watt has a direct impact on this, and it can be improved by having more efficient programs.

      and

      Quoting Bjarne Stroustrup: âoeMy biggest contribution to the fight against global warming is C++â(TM)s efficiency: Just think if Google had to have twice as many server farms! Each uses as much energy as a small town. And itâ(TM)s not just a factor of two⦠Efficiency is not just running fast or running bigger programs, itâ(TM)s also running using less resources.â

      So they're thinking of their dollars - more efficient programs means fewer servers for the same workload, means less cost and bigger bonuses for the bosses.

      This is why Microsoft picked up C++ again after practically killing it off, or at least keeping it around as a niche product solely for the Windows and Office teams that still used it. Its also why the dev team are going all-in on the native .NET, using the C++ backend compiler to create native code from .NET programs, which will help but won;t solve the fundamental efficiency problems of .NET like GC that effectively encourages inefficient use of memory.

    9. Re: please keep closed! by Billly+Gates · · Score: 1

      This is cool for a project I am working on. I plan to see if I can create a .com that will do business transactions. I need no latency but at the same time require ACID to ensure each transaction will be written to disk :-(

      My Idea is to have no sql and sql databases where something like this will do the transactions to ACID.

    10. Re:please keep closed! by DuckDodgers · · Score: 1

      The problem is, most of us are crappy programmers for a few years, or even more than a decade, before we're decent software developers. So our pain is inevitable - if you stop the underqualified novices from doing work, you've saved yourself some pain but you've reduced the number of developers of the future.

      The ideal solution, as far as I can tell, is more mentorship and closer supervision of novices. You let the same learners write the same garbage code, but then someone who knows what they're doing and is specifically assigned to spend half of their time watching the novices will review and reject most of their work - while providing an explanation as to why it was rejected and what should be done differently.

      But in reality, most companies are in such a rush to get the next release to market that they let the novices work unsupervised and put the senior developers at work in other areas. Then two months or six months or three years later the novices have moved on, and the senior developers are too busy dealing with technical debt from the previous novices to work on new features or shepherd the latest round of novices.

      But if I had been blocked from writing code when my code was crap - and my code was crap for a long time - I'd never have reached the point where I'm at today. I'm no genius, I'm no industry leader, but I can recognize most of the errors I made five and ten years ago.

    11. Re:please keep closed! by Dutch+Gun · · Score: 1

      I'm guessing that's where I originally picked this information up, but I couldn't remember the exact source, so I didn't cite it. Thank you for the reminder and the links to those sources. I also recall one of Bjarne's talks discussing another reason why C++ performs better than managed languages, and that's because of better cache coherency, which is a pretty crucial for modern processors.

      Anyhow, as someone who relies on both C++ and C#, I'm glad to see them both moving forward with solid support from MS.

      --
      Irony: Agile development has too much intertia to be abandoned now.
    12. Re:please keep closed! by Opportunist · · Score: 1

      The problem is not inefficient coding style. The problem is that people not knowing what they're (really) doing leads to security issues. If a person does not know WHY he is supposed to do something and just does it because he's told to do it, he does not know what to look for when trying to avoid pitfalls.

      Look at the OWASP Top 10. And while I don't think too highly of them as an organization, their top10 reflect pretty well what problems I find in web apps during audits myself. Even though it looks almost unbelievable that SQL injections are STILL the leading cause of web insecurities. Despite there being a near foolproof silver bullet for this problem (parameterized queries and prepared statements, if used correctly). There is exactly NO reason why (with programmers deserving that name) this should even still be on the list. Let alone at the top spot.

      Of course people use frameworks and languages that allow abstraction. Actually this can well increase security, nobody in their sane mind would write their own security libraries. And while some might now cry that OpenSSL is maybe not the best example with heartbleed and POODLE still well in our memory, you do NOT want to see the security holes the average roll-your-own security implementation has. Using libraries is a GOOD thing.

      But the person using it has to know what they're doing! Just copy/pasting something off stackexchange is NOT going to end up in decent code!

      --
      We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
    13. Re:please keep closed! by DuckDodgers · · Score: 1

      But unless you're doing something that's waiting for disk input and output or network input and output, the difference isn't 4%. The micro-benchmarks at the Great Computer Language Shootout page are a simple starting point. For Java vs. C++, for some reason the chart (section 2) doesn't show memory difference correctly. The measurements section (section 3) does - Java is about 2x slower than C++ in most of the benchmarks, but only comes within 2x of C++ for memory usage in a few places, in most other micro benchmarks the memory difference is higher, even 20 times higher. ( http://benchmarksgame.alioth.d... )

    14. Re:please keep closed! by gbjbaanb · · Score: 1

      true, same here - I just wish they'd made the distinction between then better - C# for RAD tooling, C++ for performance/efficiency/"heavy lifting" like it used to be with VB and C++ but instead it seems C# was designed to be "the new Microsoft language" by one division so they wouldn't have to work with the other division :-(

      If you want to see a better benchmark for performance, look at MSDN magazine's article on WWS, where the Windows division wrote a compatible version of WCF using C so you can see a good comparison of 2 things that do *exactly* the same thing, but written differently.

    15. Re:please keep closed! by im_thatoneguy · · Score: 1

      Also most internal tools aren't CPU bound it's either Database or Disk bound anyway. A lot of internal tools at media and corporate offices is just a workflow enhancer.

  4. Encouragement... by FearTheDonut · · Score: 4, Insightful

    We've been asking for years now (decades, even) for Microsoft to become more open. Regardless of their motivation, this kind of behavior should be encouraged, rather than ridiculed. To my knowledge, none of the other platforms they've open sourced has 'taken back' by them, as some conspiracy theorists have anticipated. While I'm under no illusion that Office or Windows will ever be open sourced, I'm very happy that much of their other platforms are becoming more open and hope they continue to do so.

    1. Re:Encouragement... by drinkypoo · · Score: 1

      Show me a license which protects my interests, and I'll show you some enthusiasm.

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
  5. Exit strategy? by RobSwider · · Score: 1

    Does this give Microsoft a legitimate exit strategy for when they decide they're done supporting Halo 4 Multiplayer? Can they just say "You can still play online with friends!**"? Will they start handing over the keys, as it were, sooner than they ordinarily would because "someone will pick up the slack"? End-of-life is becoming an increasingly important issue with so many games going all-or-nearly-all online.

  6. Do or die time by funkymonkjay · · Score: 1

    It's do or die time for MS's .Net and Azure so they need to throw down any and all incentive to get people to get on board. I applaud the new CEO's aggressive switch over to open source but it's a little too late. That moment has come and gone. My previous work place experienced this first hand. Potential buyers loved the product but not the platform that it was written in. They wanted linux/java, not MS/c++/c#.

  7. Not sure it's worth it by trev.norris · · Score: 1

    I played Halo 4 for over 400 hours, and I'm currently playing MCC exclusively. While I love the game, I can also say that the multiplayer in Halo 4 and definitely now in MCC are definitely lacking. So I'm not sure Microsoft is doing the world a favor by releasing this. What I can hope is that users will be able to help Microsoft make Halo online gaming experience better.