Building Web Applications in Erlang
| During this workshop we will first describe the lessons learnt when
internally developing web applications in Erlang. Then we will
introduce the concept of a framework which has been implemented at Erlang Solutions
on the basis of these experiences. The concept of the framework was
first presented at Erlang Workshop 2006, Portland, Oregon
(http://www.erlang.se/workshop/2006/).
|
Building a transactional distributed data store with Erlang
| The e-commerce platforms at Amazon, E-Bay or Google serve millions of
customers using tens of thousands of servers located in data centers
throughout the world. At this scale, components fail continuously and
it is difficult to maintain a consistent state while hiding failures
from the application.
Peer-to-peer protocols have been invented to provide availability by
replicating services among peers. The current systems are perfectly
tuned for sharing read-only data. To extend them beyond the typical
file sharing, the support of transactions on distributed hash tables
(DHTs) is a most important but yet missing feature.
At this talk given at the Erlang eXchange 2008,
Alexander presented a key/value store based on DHTs that supports
consistent writes. Alexander will explain how a system by Zuse
Institute Berlin and onScale solutions GmbH comprises of three layers,
all of them implemented in Erlang:
- a DHT layer for scalable, reliable access to replicated distributed data,
- a transaction layer to ensure data consistency in the face of concurrent write operations,
- an application layer with a very demanding access rate of several thousand reads/writes per second.
For the application layer, Zuse Institute Berlin and onScale
solutions GmbH selected a distributed, scalable Wiki with full
transaction support. Alexander will show that its Wiki outperforms the
public Wikipedia in terms of served page requests per second and he
will discuss how the development of the distributed code benefited from
the use of Erlang rather than C++ or Java.
This is a joint development by Zuse Institute Berlin and onScale solutions GmbH. |
Couch DB at 10,000 feet
| CouchDB is a document oriented database. It does not adhere to the
relational principles of traditional databases. While there is not much
room for technical details, we try to cover some of the cool things
CouchDB uses Erlang for to present a super simple yet professional data
storage model and the basis for Erlang-style high concurrency and fault
tolerance.
Since itsbeginnings around three years ago, CouchDB went from
a self-funded, single-developer project to a small community project
under the hood of the Apache Software Foundation and with the lead
developer Damien Katz being paid by IBM to work fulltime on CouchDB.
|
EUnit - Lightweight Unit Testing For Erlang
| It is generally agreed that test-driven development with unit testing
is a Good Thing. However, this requires that tests are easy to write,
and that running the tests is simple and quick and results are presented concisely, to make the feedback loop as short as possible.
When programming in Erlang, the EUnit framework provides you with all
you need to do unit testing with minimal effort.
EUnit takes inspiration from the JUnit family of unit testing
frameworks, but since Erlang is not an Object Oriented language, the
techniques are a bit different. EUnit uses a very compact functional style, with direct support for concurrency, timeouts, fixtures, shell
commands, and much more. This talk will provide an introduction to
EUnit, Unit Testing and Test-Driven Development. |
Enterprise Integration
| What happens when someone who works on enterprise integration tools and
solutions for years steps back and takes a good look around? He
realises just how poor many enterprise integration systems really are.
In this talk, Steve will describe his experiences building RPC, CORBA,
J2EE, and Web Service (SOAP/WSDL) systems over the course of nearly 20
years, how the Web is finally influencing enterprise integration for
the better, and how he’s realized in hindsight just how much Erlang
could have greatly helped the situation.
|
Erlang & Robotics Workshop
| The workshop will focus on how to program autonomous mobile robots using the Erlang language and the ROSEN framework.
The framework is based on OTP principles, making a strong use of
behaviors in order to separate generic functionalities from the
peculiarities of the
structure of the specific robot to be implemented.
A tool for simulating the functioning of the robot will be
also described, based on the ROSEN, a 3D robotic simulation engine.
Thanks to ROSEN, the control system implemented using the framework can
be tested by means of
a simulation approach. Once tested, it can be deployed onto the real
robot.
The workshop will consist of a brief introduction to the
problem after which a description of the robotic framework and ROSEN
will be provided. Some case studies will highlight how to use these
tools to build a real robot; finally, a short overview on swarm
robotics will be given, showing how to exploit ROSEN to simulate these
kind of systems.
Workshop Outline:-
Issues in autonomous mobile robot programming
-
The robotic framework
-
ROSEN
-
Gluing ROSEN with the robotic framework
-
Case study: building a simple robot together
-
A step forward: using ROSEN to simulate swarm robotic environments.
|
Erlang & Robotics: The ROSEN Framework at the Eurobot 2008 Competion
| This talk will describe ROSEN, an Erlang robotic framework and
simulation engine developed by the University of Catania. It is
characterised by a layered architecture able to separate the various
concurring tasks controlling the system into different modules. The
framework is based on OTP principles, making a strong use of behaviors
in order to separate generic functionalities from the peculiarities
specifics of the robot being implemented. ROSEN and the Robotics
framework is based on experiences of competing in the Eurobot
competitions in 2006 and 2007, where robots played funny golf and
collected materials to be recycled. The talk will end with a case study
and video of the Mission to Mars 2008 Eurobot competition, where the
team have built robots collecting proof of life on Mars, and bring it
back to earth. |
Erlang & Tail-F
| Tail-f is an advanced tech company,
that owes its great success to Erlang. Tail-f builds a toolkit/library
which we sell to networking device manufacturers such as Qualcom,
Nortel, Alcatel and Ericsson.
All devices, such as switcher, routers, VPN gateways etc need
to be managed. Traditionally all manufacturers of networking equipment
bought their SNMP agents as COTS software and built the CLI and the
WebUI in house. This situation was changed when the NETCONF
protocol
was introduced in 2006. An XML based protocol, backed by Cisco and
Juniper, the NETCONF protocol provides a strict machine-machine
interface through which a network device can be managed, configuration
data information can be retrieved, new configuration data can be
uploaded and manipulated.
The Tail-f ConfD product provides a toolkit, which if used on the
network device, dynamically renders all four necessary northbound
interfaces, e.g. NETCONF, CLI, WebUI and SNMP.
In this talk on Erlang and Tail-f, Klacke will describe and discuss
Tail-f's technical strategy, which leveraged the power of Erlang
technology to achieve fast time to market, whilst delivering a piece of
software small and fast enough to enable successful deployment on low
end networking devices. |
Erlang Enterprise Integration Panel Discussion
| Erlang is not an island; the modern IT infrastructure includes a broad
range of applications, middleware, protocols and services. To exploit
its full potential, we need to understand how Erlang integrates within
that IT environment. This session provides a Blueprint Architecture for
evaluating your integration needs, and then moves onto a panel
discussion covering where Erlang can be beneficially deployed.
Our panel of experts will discuss their approaches to
integration, and highlight the areas where Erlangs unique benefits come
into their own. Please bring your own war stories, or questions to
learn about the first new Enterprise-Ready technology of this
millenium.
Topics will include integration with Java, .NET, Web Services,
traditional API’s, Messaging and Middleware, as well as proprietary and
standard protocols.
|
Erlang and Ajax Web Applications
| Erlang and Ajax Web Applications
Today web development is dominated by PHP, ASP, RubyOnRails and
numerous Java frameworks, most of them focus on serverside HTML
generation. Web developers start to become aware of Erlang, but the
majority doesn’t feel yet the need to leave their easily learned and
simple to use language or framework. Any attempt to write a web
framework in a functional language so far mostly managed to attract
only developers which were already familiar with that specific
language. But next generation Ajax Web applications are different and
have different web server and framework requirements and fortunately
this requirements match very well with what Erlang has to offer. |
Erlang in Financial Applications
| Erlang in E-Commerce and Banking
Kreditor provides creative payment solutions to Internet shops. We are
basically a bank specializing on E-commerce, providing secure
transactions between consumers and on-line stores.
Our business model puts high demands on our system in terms of
availability, throughput and security. At the same time we constantly
introduce new features, staying ahead of or competition by doing very
rapid development and having an extremely short time to market.
In this Erlang session talk I will present our business model,
our system
architecture and our development method. I will also tell you how we
have taken advantage of Erlang in order to, in just three years, become
Sweden\'s leading provider of invoicing and installment plans over the
Internet. |
Erlang- D-Trace
| DTrace provides unique capabilities. It can be used to observe,
monitor, measure and debug end-to-end systems in production, as well as
during test and development. When not actively monitoring, DTrace has
virtually no overhead. DTrace is able to simultaneously observe
multiple applications and the underlying Operating System kernel,
correlating events and resource usage throughout a system. Dtrace can
observe the internal behaviour of traditional programs without access
to source. Further, application developers have provided easy-to-use
observation into applications written in Java, Ruby, Php, etc. as well
as observing the behaviour of queries in database like PostgreSQL and
MySQL, all the way back to the \'Web 2.0\' JavaScript running in
Firefox and onto Apache.
This Erlang eXchange talk describes Erlang-DTrace as it is
implemented, then moves onto show how to use it to monitor multi-tier
applications using Erlang and other application technologies. |
Erlang/OTP Vs Google App Engine, The CEO View
| Gordon Guthrie will look at the business decisions about using the
Erlang/OTP A/S or the Google Application Engine A/S by placing them in
a historical business context and looking at the evolution of the IT
industry from a cost, business model and structural perspective.
This session is aimed at entrepreneurs thinking about building a business on Erlang/OTP.
|
Introducing Erlang to Motorola: The Journey to Success
| Nicholas will explain how two engineers in Motorola were able to
persuade top management to move Erlang out of the labs and into real
telecommunications projects. First looking at the initial ideas and
reasoning for using Erlang inside of Motorola, this presentation will
then dive deaper into some of the organisational and technological
issues associated with deploying a new development language in a large
company. Two projects will be highlighted, each were used as powerful
case studies to convince people to see Erlang as an enabler to higher
productivity and better quality. The nature of our systems as
concurrent, real time and distributed beasts will also be covered and
how this matches up with the strengths of Erlang/OTP.
Motorola Denmark is the center of excellence for worldwide TETRA
engineering. You can read more about what we do in detail here: http://www.motorola.com/tetra
|
Introducing Seedcamp
| Reshma is the CEO of SeedCamp, a new kind of incubator which aims to
provide a catalyst for Europe’s next generation of entrepreneurs
through the provision of seed capital and a world class network of
mentors. |
Introduction using Faxien & Sinan: Erlang Project Build & Packaging Systems
| In this talk you will learn how to install the tools and how to
generate and start a project singen, build.cfg, and compilation. Eric
and Martin will also provide an intro into working with erlware tools
during build Building and testing with Sinan, versioning and locally
installing library applications so Sinan picks them up as dependencies.
They will then cover how to publish code Creating releases, package
format conventions, control files, the package maintainer role,
publishing with Faxien. Finally, you will learn how to install and use
production releases, how to install and use them. |
Keynote: Armstrong on Software: Erlang & SMP
| The world is concurrent - but most applications are written in
sequential programming languages. This makes programming artificially
difficult. From the very beginning, Erlang is designed to program
concurrent, scalable distributed applications.
During this keynote, Joe Armstrong, principle designer of Erlang, will
describe why Erlang was created and what kind of applications Erlang is
suitable for.
This talk will look at
- The challenges and opportunities for making highly reliable scalable software
- The Erlang approach to concurrency and fault-tolerance
- How Erlang can exploit the power of modern multi-core CPUs
This talk will be a mixture of science and technology, peppered with real-life success stories from the Erlang world. |
Keynote: Enterprise Integration
| What happens when someone who works on enterprise integration tools and
solutions for years steps back and takes a good look around? He
realises just how poor many enterprise integration systems really are.
In this talk, Steve will describe his experiences building RPC, CORBA,
J2EE, and Web Service (SOAP/WSDL) systems over the course of nearly 20
years, how the Web is finally influencing enterprise integration for
the better, and how he’s realized in hindsight just how much Erlang
could have greatly helped the situation. |
Load Testing of Web Applications
| Load testing of web applications is typically done to understand the
load characteristics the application can handle, to configure the
hardware and the deployment architecture to allow the web application
to handle a higher load. If an application has to scale to millions of
users, performance testing becomes mandatory. This implies that the
tool used for testing must be scalable in the first place in order to
simulate the expected loads. Karthik explains why Erlang is the
language of choice for scalable and highly concurrent applications.
This talk covers:
- Performance testing of web applications – challenges and approaches
-
The erlang approach in detail
-
Demo of the experiment
-
Future directions and lessons learnt
|
Presenting RabbitMQ: An Erlang Based Implementation of AMQP
| Matthias and Tony will be presenting on RabbitMQ, an Erlang implementation of AMQP,
the emerging standard for high performance enterprise messaging. Erlang
is well known delivering a highly scalable and stable environment for
applications that involve messaging. When JP Morgan Chase and others
introduced AMQP, a new standard l4 protocol for busisness messaging and
integration, Erlang seemed an obvious choice. This talk will explain
the business rationale of this decision in detail and describe the
technology and architecture of the ensuing product, RabbitMQ. Today,
RabbitMQ is used in solutions across multiple languages and platforms
such as Java, Linux, C# on .net, Python and of course Erlang. For
people who want to benefit what Erlang brings to the table, products
that implement a protocol as their API seem to be delivering value. |
QuickCheck Tutorial: Using QuickCheck to Test Erlang Programs
| QuickCheck is an automated testing tool which addresses these
problems by generating test cases from a concise specification (so that
many more cases can be tested), and simplifying failing cases to a
minimal example on a test failure (so that fault diagnosis is quick and
easy). QuickCheck enables developers to dramatically improve test
coverage, and find obscure errors at an earlier stage, lowering costs
and improving quality as a result.
In this tutorial, John Hughes and Thomas Arts
will use examples to show how developers write QuickCheck
specifications—which are actually Erlang programs using the QuickCheck
API—and use them to test code written in Erlang or other programming
languages. We will show how QuickCheck’s shrinking finds tiny examples
that provoke errors, making the step from observing a bug to diagnosing
it very short indeed, and we will show how property driven development
can produce code that is solid from the word go. |
QuickCheck for Erlang
| Testing is a major part of all software development. Yet no matter how
much effort is spent on it, some errors always seem to slip through.
Cases which no-one thought to test crash systems late in development or
out in the field, revealing errors which cost time and money to
analyze, diagnose, and fix. In the worst case, such errors
reveal fundamental flaws which force a redesign of part of the system,
at disproportionate cost.
In this talk we present QuickCheck, a tool which addresses
these problems by generating test cases from a concise specification
(so that many more cases can be tested) and simplifying failing cases
to a minimal example on a test failure (so that fault diagnosis is
quick
and easy). QuickCheck enables developers to dramatically improve test
coverage, and find obscure errors at an earlier stage, lowering costs
and improving quality as a result. QuickCheck success stories include
major telecoms products such as, radio base stations and media gateways. |
Roktalk, Erlang Powered Mobile Conferencing
| Howler has a number of products in development, and uses
Erlang/OTP "wherever it makes sense" - which happens to
often be the case! His talk will focus on ROK Talk™, a
conference calling application for mobile phones, the
backend for which is 100% Erlang/OTP-based. |
Tsung Tutorial
| This Tsung tutorial will present the fundamental concepts underlying
Tsung architecture and will provide the required knowledge to write
relevant benchmark scenarios. You will then learn how to create a
scenario to benchmark an example web application and how to analyse the
results of the benchmark. |
Using Jinterface to Bridge Erlang and Java
| As Erlang gains speed we are finding more and more opportunities to
integrate it with legacy systems built on other programming platforms.
A large share of these legacy systems have been written in Java, making
JInterface a valuable tool in the enterprise. This session will present
an in depth look at the Jinterface API and how it bridges the
functional world of Erlang with the object oriented world of Java. This
Erlang session will also highlight the very different approaches to
concurrency offered by the two platforms, with an emphasis on when and
when not to use either. |
Wrangler, The Erlang Refactoring Tool
| Creator of Erlang's popular Refactoring tool Wrangler,
Simon Thompson is Professor of Logic and Computation at the University
of Kent and a well-known expert on Functional languages. A long-term
contributor to the Haskel and Erlang communities and author of many
popular books, including "Haskell: The Craft of Functional
Programming", his work covers many aspects of functional programming
and logic in computer science (you can find out more details here) for Erlang and also for Haskel. |
ejabberd for web 2.0 development
| Based on real life examples, this talk will present several use cases
of ejabberd in the context of highly scalable web application. The talk
will first focus on the features that make ejabberd a dream tool for
the development of highly interactive web applications. Mickaël will
then talk about two major Real World User Cases: - Building highly interactive web sites for sport events to increase the community loyalty (Major League of Baseball) and
- high-performance microblogging platform (Twitter)
|