Rob Windsor on WCF with REST, JSON and RSS
WCF is not just for SOAP based services and can be used with popular protocols like RSS, REST and JSON. Join Rob Windsor as he introduces WCF 3.5 and its new native support for non-SOAP services.
Tracking change and innovation in the enterprise software development community
Posted by Werner Schuster on Feb 28, 2008 09:15 AM
Getting Ruby to exploit multiple CPU cores machines has been a problematic topic in the past. Ruby's interpreter has used userspace threading up until Ruby 1.8, which means the threads are scheduled by the Ruby interpreter. Ruby 1.9 changed this by switching to kernel threads - except that it uses a Python-like Global Interpreter Lock (GIL). While the GIL means that only one Ruby thread can run at a time, native code can run as many parallel threads as it wants.system("ruby", file_to_run)
to launch a new Ruby process. However: if, for instance, this code runs in JRuby, it can fail in many ways, e.g. if the only Ruby on the system is JRuby, which would have to be launched with "jruby". Other issues are the performance overhead: launching one or more JRuby's with the 'jruby" command would launch multiple JVMs. This is unnecessary since multiple JRuby instances can share the same JVM. However: to use that, JRuby specific code is needed to instantiate the new instance, which can vary across hosting frameworks such as BSF or the the one included in Java 6. vm = Rubinius::VM.spawn "blah", "-e", "puts 'hello\n'"it's possible to launch a new VM. This solution does make use of multiple cores because every VM runs on it's own native thread. This means, all the VMs live in the same OS address space and run in parallel. The VMs, however, can't share any references or - actually - anything; the only communication is via a Rubinius-specific message passing API.
A group led by Professor Ikuo Takeuchi at the Graduate School of Information Science and Technology, the University of Tokyo will collaborate with Sun's Tim Bray (Director of Web Technologies) and the members of the JRuby team to implement a multiple virtual machine (MVM) environment on both Ruby and JRuby. The MVM environment is expected to make Ruby programs run more efficiently than was previously possible. The results of the research are scheduled to be open sourced via the broader community of Ruby developers, which could inspire further innovations.In short, the expected outcome is a common API that will allow to launch and use multiple Ruby VMs. With a common API, every Ruby implementation can have backends that ensure to offer the most efficient implementation. Eg. on Rubinius and JRuby, the VMs can share the same address space; for a legacy older Ruby version, multiple processes could be launched.
Previously, running more than one application simultaneously on Ruby required multiple interpreters, leading to excessive memory consumption. The proposed MVM environment could generate multiple VM instances on a single interpreter, allowing applications to run more efficiently. The collaborative research aims to clarify such technical issues as the definition of common interfaces for using MVM, parallelization of VM instances and memory sharing, and then to implement technologies that can be used on Ruby and JRuby. While Ruby has already been widely in use in commercial and other environments, the research on MVM will further enhance the performance and utility of Ruby.
Scaling a Massively Multi-player Server Casestudy: Terracotta on SmartFoxServer
Hibernate without Database Bottlenecks
Scale Your Application without Punishing Your Database
Why Should I Care About Terracotta?
Terracotta 2.6 - Download now for scalability without tradeoffs
WCF is not just for SOAP based services and can be used with popular protocols like RSS, REST and JSON. Join Rob Windsor as he introduces WCF 3.5 and its new native support for non-SOAP services.
Christophe Coenraets discusses Flex 3, Flex Builder, AIR, BlazeDS, Adobe and open source, integrating Flex with existing applications, and integrating RIAs with search engines and browsers.
Danijel Arsenovski attempts to dispel some of the myths around refactoring and how it applies to .NET developers.
In this presentation, recorded at QCon San Francisco, CORBA guru Steve Vinoski explains REST from the view of someone who comes to SOA from a traditional, RPC-oriented background.
Feature teams are key to scaling agility for large teams. In an excerpt from "Scaling Lean and Agile Development," Larman & Vodde show how feature teams resolve traditional problems & raise new issues
Billy Newport talks about virtualization, eXtreme Transaction Processing (XTP) and WebSphere Virtual Enterprise. He discusses hardware, hypervisor, JVM, application and data virtualization.
While virtualization provides many benefits, security can not be a forgotten concept in its application.
This session is specifically aimed at traditionally trained project managers who are new to Agile, and who would like to be able to relate the PMI's best practices to their Agile equivalents.
No comments
Reply