Warning: strpos() [function.strpos]: Empty needle in /home/dealer/kasat/pkg/cahir/web/html/lib/plugins/translation2/action.php on line 53

Warning: Cannot modify header information - headers already sent by (output started at /home/dealer/kasat/pkg/cahir/web/html/lib/plugins/translation2/action.php:53) in /home/dealer/kasat/pkg/cahir/web/html/inc/actions.php on line 163
erlang [Krystian Bacławski Wiki]
 

Kurs języka Erlang

Streszczenie

Erlang jest językiem funkcyjnym ogólnego przeznaczenia, z gorliwą ewaluacją, pojedynczym przypisywaniem oraz dynamicznym typowaniem. Jego mocną stroną są doskonale rozwinięte mechanizmy równoległego i rozproszonego przetwarzania oraz tolerowania awarii. Posiada rozbudowany zestaw standardowych bibliotek (Open Telecom Platform) przeznaczonych do budowania złożonych usług sieciowych.

Erlang to jeden z niewielu języków funkcyjnych, które są aktywnie wykorzystywane w przemyśle. Wykorzystuje się go głównie w branży telekomunikacyjnej. Jest używany między innymi w: Ericsson (gdzie powstał), T-Mobile, Telia, Nokia, Nortel, Facebook.

Wymagania

  1. Doświadczenie z językami funkcyjnymi ;-)
  2. Zaliczony przedmiot sieci komputerowe.

Program

Projekt

Celem projektu jest napisanie klienta lub serwera jakiegoś protokołu sieciowego bazującego na UDP lub TCP.

Wymagania:

  • należy przygotować prezentację zawierającą:
    • wysyłanie lub odbieranie żądań (trzeba dysponować drugą stroną komunikacji - w przypadku implementacji klienta musimy mieć gdzie powysyłać żądania, w przypadku serwera czym powysyłać),
    • wymianę elementów aplikacji w trakcie jej działania,
  • użycie szablonów OTP (co najmniej application, supervisor i gen_server),
  • należy używać modułu error_logger.

Protokoły:

  • HTTP (np. implementacja proxy),
  • FTP (tylko serwer),
  • POP3 / IMAP (serwer przechowujący pocztę),
  • DNS (serwer nazw),
  • inne np. z tej listy.

Funkcjonalności dodatkowe:

  • implementacja rozproszona,
  • wykorzystanie narzędzi grafowych – moduły digraph, digraph_utils,
  • implementacja własnego protokołu bazującego na XML (moduł xmerl) lub ASN.1 (moduł asn1),
  • szyfrowanie komunikacji z użyciem SSL (moduł new_ssl),
  • użycie bazy danych klucz-wartość (moduły ets i dets),
  • użycie rozproszonej bazy danych (moduł mnesia),
  • użycie protokołu SNMP do udostępniania statusu aplikacji (statystyki, zużycie zasobów),
  • konsola administratora po SSH,
  • graficzny interfejs użytkownika (moduł wx).

Inne propozycje na tematy projektów:

  • implementacja modułu zachowania zgodnego z wytycznymi OTP,
  • interfejs z programem zewnętrznym,
  • interfejs z biblioteką w innym języku programowania.

Odnośniki

Literatura

Programming Erlang: Software for a Concurrent World @amazon.com

Title:     Programming Erlang: Software for a Concurrent World
Author:    Joe Armstrong
Publisher: Pragmatic Bookshelf; 1 edition (July 11, 2007)
ISBN-13:   978-1934356005

Erlang Programming Main Page

Erlang Programming @amazon.com

Title:     Erlang Programming
Author:    Francesco Cesarini, Simon Thompson
Publisher: O'Reilly Media, Inc. (June 26, 2009)
ISBN-13:   978-0596518189
 
erlang.txt · Last modified: 2010/06/15 13:14 by Krystian Bacławski
 
Except where otherwise noted, content on this wiki is licensed under the following license:CC Attribution-Noncommercial-No Derivative Works 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki