Home
ryah - August 19th, 2008 [entries|archive|friends|userinfo]
ryah

[ website | tiny clouds ]
[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

August 19th, 2008

ebb version 0.3 [Aug. 19th, 2008|09:57 am]
[Tags|, ]

This release includes a rather large refactoring of the internals. In particular, the core of Ebb was extracted and expanded into a separate C library called libebb.

New features in Ebb 0.3 are
  • support for chunked requests (transparent)
  • support for chunked responses (set the header "Transfer-Encoding: chunked")
  • support for HTTPS. Use by supplying two extra parameters to the options hash
      Ebb::start_server(SimpleApp.new, 
                         :port => 4001,
                         :ssl_cert => "/home/ryan/projects/ebb/benchmark/ca-cert.pem",
                         :ssl_key => "/home/ryan/projects/ebb/benchmark/ca-key.pem"
                        )
    to use HTTPS you must have GnuTLS installed. This is optional.
  • support for pipelined requests
  • no longer dependent on glib
Download at the RubyForge project page or by running
gem install ebb


update 0.3.1 fix small bug with chunked responses
update 0.3.2 add hack to work with Merb (who doesn't send Content-Length headers even though she should).
LinkLeave a comment

opis [Aug. 19th, 2008|10:37 pm]
[Tags|]

opis
The importance of distributed systems is growing as computing devices become ubiquitous and bandwidth becomes plentiful. Concurrency and distribution pose algorithmic and implementation challenges in developing reliable distributed systems, making the field an excellent testbed for evaluating programming language and verification paradigms. Recently, several specialized domain-specific languages and extensions of memory-unsafe languages have been proposed to aid distributed system development. In this paper we propose an alternative to these approaches, arguing that modern, higher-order, strongly typed, memory safe languages provide an excellent vehicle for developing and debugging distributed systems.

We present Opis, a functional-reactive approach for developing distributed systems in Objective Caml. In Opis, a protocol description consists of a reactive function (called event function) describing the behavior of a distributed system node. The event functions in Opis are built from pure functions as building blocks, composed using the Arrow combinators. This facilitates reasoning about event functions both informally and using interactive provers. For example, this approach leads to simple termination arguments. Given a protocol description, a developer can use higher-order library functions of Opis to 1) deploy the distributed system, 2) run the distributed system in a network simulator with full-replay capabilities, 3) apply explicit-state model checking to the distributed system and detect any undesirable behaviors, and 4) do performance analysis on the system. We describe the design and implementation of Opis, and present our experience in using Opis to develop peer-to-peer overlay protocols including the Chord distributed hash table and the Cyclon random gossip protocol. We have found that using Opis results in high programmer productivity and leads to concise and easily composable protocol descriptions. Moreover, Opis tools were effective in helping identify and eliminate correctness and performance problems during distributed system development.
reminiscent of thoughts I've been having about a language based on the reactor pattern.
LinkLeave a comment

navigation
[ viewing | August 19th, 2008 ]
[ go | Previous Day|Next Day ]

Advertisement