Erlang in E-Commerce and Banking



Similar documents
Quality Cruising. Making Java Work for Erlang. Erik (Happi) Stenman

Software infrastructure for Java development projects

Software Construction

Best Practices for Java Projects Horst Rechner

About This Document 3. Integration and Automation Capabilities 4. Command-Line Interface (CLI) 8. API RPC Protocol 9.

Edu Sparrow - Online School Management Software

Continuous Delivery and Test Automation in Agile SW projects with Robot Framework Antti Pohjonen

Accelerate Software Delivery

DEVELOPMENT OF A AUTONOMOUS BUILD AND DISTRIBUTION SYSTEM FOR SOFTWARE WITH HYBRID DEVELOPMENT MODELS

High Level Design Distributed Network Traffic Controller

Engage your customers. Grow and optimize your online business.

AWITEL solution and services for PTTs:

Continuous Integration

Connect Getting Started Guide. Connect Getting Started Guide

Efficiency of Web Based SAX XML Distributed Processing

Talk Internet User Guides Controlgate Administrative User Guide

Modern practices TIE-21100/

NXTware Remote. Advanced Development and Maintenance Environment for OpenVMS and other Strategic Platforms

Server based signature service. Overview

SysPatrol - Server Security Monitor

Organise Your Business

MD Link Integration MDI Solutions Limited

Avid. inews. Redundancy and Failover in Avid News Management Solutions

1. Introduction. 2. Web Application. 3. Components. 4. Common Vulnerabilities. 5. Improving security in Web applications

Deploying Cisco Unified Contact Center Express Volume 1

Maven or how to automate java builds, tests and version management with open source tools

PANDORA FMS NETWORK DEVICE MONITORING

Certified VETtrak User (Finance Features) Course Outline

PLC Support Software at Jefferson Lab

MEDIA WAREHOUSE / Telenor Media

Billing & Customer Care

Erlang a platform for developing distributed software systems

Advanced Service Design

Test Challenges and Approaches With SaaS and PaaS. Dr. Ganesh Neelakanta Iyer Principal QA Engineer Progress Software

PUPPET FOR MANAGED HOSTING PROVIDERS

Document version: 1.1. Installation Guide Übercart (Klarna Payment Module 1.1)

Continuous Integration with Jenkins. Coaching of Programming Teams (EDA270) J. Hembrink and P-G. Stenberg [dt08jh8

OpenMake Dynamic DevOps Suite 7.5 Road Map. Feature review for Mojo, Meister, CloudBuilder and Deploy+

Pipeline Orchestration for Test Automation using Extended Buildbot Architecture

Agile Web Service and REST Service Testing with soapui

CONTINUOUS INTEGRATION

Continuous Integration: Improving Software Quality and Reducing Risk. Preetam Palwe Aftek Limited

ActiveXperts Network Monitor. White Paper

How to set up SQL Source Control. The short guide for evaluators

Business & Computing Examinations (BCE) LONDON (UK)

Practicing Continuous Delivery using Hudson. Winston Prakash Oracle Corporation

Things to consider before you do an In-place upgrade to Windows 10. Setup Info. In-place upgrade to Windows 10 Enterprise with SCCM

New Features in XE8. Marco Cantù RAD Studio Product Manager

Introduction to Automated Testing

RadBlue Load Tester Version 6. [Released: 09 DEC 2009]

Release Automation for Siebel

XpoLog Center Suite Log Management & Analysis platform

Performance Testing with a Raspberry Pi Wall running Java. Erik Wramner CodeMint AB

What is new in Switch 12

Invest in your business with Ubuntu Advantage.

Beyond The Web Drupal Meets The Desktop (And Mobile) Justin Miller Code Sorcery Workshop, LLC

Continuous Integration Processes and SCM To Support Test Automation

Technologize Your Business

Escaping the Works-On-My-Machine badge Continuous Integration with PDE Build and Git

Cisco Unified Presence Server 1.0

A Tool for Evaluation and Optimization of Web Application Performance

The Benefits of Automating AP Invoice and Purchase Order Operations

EVALUATION ONLY. WA2088 WebSphere Application Server 8.5 Administration on Windows. Student Labs. Web Age Solutions Inc.

Pragmatic Version Control

Version Control! Scenarios, Working with Git!

Virtual Credit Card Processing System

Quick Start Guide. Cerberus FTP is distributed in Canada through C&C Software. Visit us today at

Managed File Transfer

Importantly, only managers with security clearance can access this section.

Organise Your Business

Windows 7 Upgrade Risk Mitigation Planning: Ensuring Windows 7 Upgrade Success

TOP LEVEL COMPONENTS

Big Data Router for Real-Time Analytics

Hosted Connecting Steps Client Installation Instructions

COS 333: Advanced Programming Techniques

Programming IoT Gateways With macchina.io

UBS KeyLink Quick reference WEB Installation Guide

Apache James: more than s in the cloud. Ioan Eugen Stan Berlin Buzzwords 2012

TRANSACTION Developer Advanced Training I. Copyright ADSOTECH Scandinavia Oy 2014

Open Source Business Rules Management System Enables Active Decisions

Build management & Continuous integration. with Maven & Hudson

BLE113 DEVELOPMENT KIT

WebView addjavascriptinterface Remote Code Execution 23/09/2013

Continuous Delivery for Alfresco Solutions. Satisfied customers and happy developers with!! Continuous Delivery!

Features of The Grinder 3

Pikko Server. Scalability when using Erlang on the server side for massive multiplayer game servers. David Almroth CTO, PikkoTekk

Managing and Maintaining Windows Server 2008 Servers

Hudson Continous Integration Server. Stefan Saasen,

JRuby Now and Future Charles Oliver Nutter JRuby Guy Sun Microsystems

CGI-based applications for distributed embedded systems for monitoring temperature and humidity

An Easier Way for Cross-Platform Data Acquisition Application Development

Transcription:

Erlang in E-Commerce and Banking or Painless Payment Processing by Erik Stenman CTO, Kreditor Europe AB Creative Payment Solutions

The business model: Kreditor Bring trust to Internet shopping. Bring old style billing into the new IT-economy. Brief background: Founded in February 2005. With < 60,000 in venture capital. Live system in March 2005. The company vision: Be the coolest company in Sweden.

Success So Far More than 2000 web-shops are using our system, among them several of Sweden s largest. Expanded from 3 to 55 employees without using VC. (And ten more are joining the tech department this summer/fall.) Making profit since year 2, while expanding. Profit 2007: just under 500.000. Monthly turnover up 40% January-April. Introduced more than eight major new services since start. Daily upgrades to the system, without any downtime.

The Problem Internet shopping is a question of trust. The shop has to trust the customer to get paid. The customer has to trust the shop to send the stuff. Many (Swedish) customers are uncomfortable using credit card over the Internet. Many banks are actually worried about the security of Internet shops handling credit card information. Also, doing a partial return when using credit card is a hassle, both for the customer and the shop.

The Solution Bring in a trusted party, i.e., KREDITOR. Send an invoice to the customer. The customer pays after receiving the goods and takes no risk. The customer does not have to trust anyone. The shop is guaranteed (by contract) to get money from KREDITOR. The shop only have to trust KREDITOR with whom they have a written contract.

Advantages The customer gets credit. The customer can pay using known methods. Returning goods is easy. Better fraud detection. Advanced credit assessments. Easy to add similar features like pre-pay, instalment plans and subscriptions.

Instalment Plans In October 2007 we introduced instalment plans. That is, the ability to pay a (semi-) fixed amount in e.g. 24 month. Swedish law requires a written contract, so the previous market leader had a system requiring a signed contract, taking minimum 3 days to complete a purchase. We use invoicing, allowing the customer to choose an instalment plan without a contract; If he later sends in a contract he get the plan, otherwise he get an invoice. The purchase is instantaneous. In February 2008 Kreditor became the market leader for instalment plans over Internet in Sweden.

How Does it Work? Snail mail Goods+invoice surfs xm A web-shop Money Pays :- ok? sftp KREDITOR On-line Payment info ap so nfo it i ed Print&mail sftp er d n i m Re Cr A (happy) customer Money Pays Bank Sn ail m Re min ail de r lrp c Credit information

System Components Back Office Stat (-istics) SMS Gateway SMS Gateway Bank Bank Printshop Master Slave Standby Credit info Credit info Credit info Credit info Sweden Norway Credit info Credit info Finland Credit info Credit info Denmark Credit info Credit info Customers End Customers Log Storage Backup Storage Off-cite Backup Storage Monitors Telephony Exchange Staff

Demo Monitoring

Process We have have an informal agile process. We have very short time to market, for simple changes the time from idea to finished integration can be less than one hour. It is crucial for us to have an automated comprehensive test suite. With a framework that works. Which is used. Always. Enters Yatsy and CruiseControl.

Yatsy & CC Yet Another Test Server Yaws compatible. (Yatsy is Swedish for Yatzee testing is a bit like a dice game.) A home made test server, released: http://code.google.com/p/yatsy/ CruiseControl is a framework for continuous integration. It is open source, it is written in Java, (but not by Kreditor). It automatically checks out the latest version from a repository, does a build, runs all tests, and it measures any metric you have automated. As soon as anyone checks anything in.

Our CC Set-up A set of projects commit-[branch], runs on every commit nightly-[branch], runs each night CC starts a script svn update make run yatsy Reporting Yatsy reports test results trough an xml file Reverse engineered from JUnit CC sends email to responsible developer in case of error

Integrating Cover with Yatsy There is an application called Cover in Erlang/OTP which can give you a line by line coverage analysis of a module. We have added a module yatsy_cover to Yatsy which will let you run cover on a test suite. If you run yatsy with the cover flag all beam files are cover compiled before the test suite is run. Yatsy produces a source code file annotated with execution count.

The Erlang Advantage Easy to build fault-tolerant systems. Rapid development. Low-maintenance and easy upgrade. Ability to leverage multicore technology. Network programming is easy. Good way to get great programmers.

Easy to Build Fault-tolerant Systems Erlang was designed from the ground up with the purpose of making it easy to develop fault-tolerant systems. Erlang was developed by Ericsson with the telecom market in mind. Erlang supports processes, distributed systems, advanced exception handling, and signals. Erlang comes with OTP-libraries (Open Telecom Platform), e.g. supervisors and generic servers.

Rapid Development Erlang has a number of features to support rapid prototyping and fast development: Automatic memory management. Symbolic constants (atoms). An interactive shell. Dynamic typing. Simple but powerful data types. Higher order functions and list comprehensions. Built in (distributed) database.

Low-maintenance and Easy Upgrade Erlang has a number of features that makes it easy to maintain and upgrade: Hot code loading. Distribution. Interactive shell. Simple module system. No shared state. Virtual machine.

Ability to Leverage Multi Core The concept of processes is an integral part of Erlang. The Erlang Virtual machine (BEAM) has support for symmetric multiprocessing. No shared memory -- easier to program.

Network Programming is Easy Distributed Erlang solves many network programming needs. Setting up a simple socket protocol is a breeze. The binary- (and now bit-) syntax makes parsing binary protocols easy. There are simple but powerful libraries for HTTP, XML, XML-RPC and SOAP.

Good Way to Get Great Programmers Nice paradox: The lack of Erlang programmers makes it easier for us to find great programmers. There are many great C and Java programmers, I m sure, but they are hidden by hordes of mediocre programmers. Programmers who know a functional programming language are often passionate about programming. Passionate programmers makes Great Programmers.

Conclusion A good business plan and a great programming language is a powerful combination.