Wednesday, April 16, 2008

Sun Labs Open House 2008 Report (3)

On the second day (4/10/2008), I attended the following sessions
  • Project Caroline
  • Project Darkstar / Project Wonderland
Here is a summary for the sessions:

Project Caroline

Project Caroline is a hosting platform for development and delivery of dynamically scalable Internet-based services. The platform comprises a programmatically configurable pool of virtualized CPU, storage, and networking resources. Project Caroline helps software providers develop services rapidly, update in-production services frequently, and automatically flex their use of platform resources to match changing runtime demands.

Internet services move from just writing code to "writing AND running" code, but it's really hard to get started. This also means deployment becomes part of developer workflow. To overcome this hard task, Sun Labs has started a research project called "Project Caroline" developing a platform for development and deployment of long-running Internet services.

The main characteristics of this project is "full programmatic control of distributed resources", so you can control resources with Java, JRuby, Perl, Python, etc. For example, a layer 4 load balancer is created as follows by using Java.

scfg = new L4VirtualServiceConfiguration();
scfg.setExternalNetworkAddress(extAddr.getUUID());
scfg.setPort(80);
scfg.setProtocol(Protocol.TCP);
scfg.setRealServices(Arrays.asList(
new RealService(intAddr.getUUID(), 8080)));
myLB = grid.createNetworkSetting(“myLB”, scfg);

This is another example to create DNS record:

bcfg = new HostNameBindingConfiguration();
bcfg.setHostName(“www”);
bcfg.setAddresses(Arrays.asList(extAddr.getUUID()));
myDNS = grid.getExternalHostNameZone().createBinding(
“myDNS”, bcfg);

In this session, there is a demo to control resources for Facebook application. For detailed documentation and samples of this project, please see https://www.projectcaroline.net/.

Project Darkstar / Project Wonderland

Project Darkstar is a software server, written entirely in Java, to handle massive-scale low-latency applications such as online games. This project is available as open source under GPLv2 license and commercial licenses can be provided. The main goal of this project is to provide an infrastructure that can use available resources very efficiently while giving developers a simple event-driven, single-system view of the world. The current focus of this project has been building out support for multi-node clustering, supporting multiple machines working together to host a single game. For the detail, please visit http://projectdarkstar.com/.

Project Wonderland is the Java-based business grade virtual world toolkit. Within those worlds, users can communicate with immersive audio and even share applications, such as web browsers and OpenOffice documents. And Project Wonderland is implemented as serious game on top of Project Darkstar. In this session, an engineer deeply explained how to change Wonderland client design to overcome poor throughput and how to adjust it well to Project Darkstar Server.

No comments: