asynchronität und parallelisierungin businessanwendungen

34
Roman Schacherl | softaware gmbh @rschacherl Asynchronität und Parallelisierung in Businessanwendungen

Upload: rschacherl

Post on 22-Jul-2015

236 views

Category:

Technology


0 download

TRANSCRIPT

Roman Schacherl | softaware gmbh

@rschacherl

Asynchronität und Parallelisierung

in Businessanwendungen

Roman SchacherlGründer & Geschäftsführer

softaware gmbh

@rschacherl

[email protected]

softaware [email protected]

www.softaware.at

Holzhandel Pharmasektor Personaldienstleister Motorsport

Schulbereich Therapie Erdölindustrie Rettungswesen

Finanzsektor Musik Kantine Musik Erdölindustrie Therapie

Personaldienstleister Holzhandel Pharmasektor Motorsport

Pharmasektor Schulbereich Musik Personaldienstleister

Erdölindustrie Holzhandel Finanzsektor Holzhandel

Pharmasektor Personaldienstleister Motorsport Schulbereich

Therapie Erdölindustrie Rettungswesen Finanzsektor Musik

Kantine Musik Erdölindustrie Therapie Personaldienstleister

Holzhandel Pharmasektor Motorsport Pharma

Windows Azure C# Microsoft .NET SQL Server WPF Silverlight

ASP.NET Windows Store Apps C# Windows Phone JavaScript

Microsoft PixelSense Typescript WCF Webservices HTML

Silverlight Windows Store Apps Windows Phone ASP.NET

Microsoft PixelSense Windows Azure WPF Webservices

Typescript ASP.NET Azure HTML JavaScript Windows

Windows Azure C# Microsoft .NET SQL Server WPF Silverlight

ASP.NET Windows Store Apps C# Windows Phone JavaScript

Microsoft PixelSense Typescript WCF Webservices HTML

Silverlight Windows Store Apps WPF ASP.NET Windows Phone

async

awaitTask Parallel Library

TaskTaskCompletionSource

Die Welt ist asynchron.

Cloud

Services

Auf allen Ebenen…

Agenda

• async / await

– Best Practice / Bad Practice

• Praxisbeispiele

– WPF / MVVM

– ASP.NET MVC

– Windows Azure

async / await

async / await

• async / await verwaltet die

Asynchronizität und erleichtert die

Verwendung.

• Es werden aber keine automatischen

Threads erzeugt!

async void

async void

async void

async void

• async void ist fire-and-forget!

– Macht nur in Ausnahmefällen Sinn,

zB bei Eventhandlern

async & synchr. Methoden

Beispiel © Stephen Toub, „Async‘ing Your Way to a Successful App with .NET“, //build 2013

async & synchr. Methoden

Beispiel © Stephen Toub, „Async‘ing Your Way to a Successful App with .NET“, //build 2013

async & synchr. Methoden

• Synchrone (CPU-intensive) Methoden

(wenn möglich) nicht in einer Async-

Methode „verstecken“!

TaskCompletionSource

TaskCompletionSource

TaskCompletionSource

• TaskCompletionSource<T> ermöglicht

die Abbildung von Events auf Tasks

SZENARIO 1

WPF / MVVM-Anwendung

mit async / await-Unterstützung

WPF / MVVM

• Async / Await in EF 6

• CancellationToken in Async-Methoden

vorsehen, falls die Operation

abgebrochen werden kann

SZENARIO 2

ASP.NET MVC-Anwendung

mit async / await-Unterstützung

Async Actions

• Vermeiden von Skalierungsproblemen

Ressourcen sparen

• Timeout mit CancellationToken

SZENARIO 3

ASP.NET MVC-Anwendung

mit vielen Requests eines Users

SessionState

• Falls eine Web-Anwendung Sessions

einsetzt, werden standardmäßig keine

Actions eines Users parallel ausgeführt

• SessionState-Attribut schafft Abhilfe,

falls Performance (und keine Session)

benötigt wird

SZENARIO 4

Windows Azure Worker Role

Abarbeitung einer Queue

Worker + Queue

• Pattern für die Abarbeitung von

Arbeitspaketen

– z.B. Import aus externen Systemen

• Leichte (auch automatisierte)

Skalierbarkeit in Windows Azure

• Standard-Features

– Dequeue-Count, Try/Retry, etc.

SZENARIO 5

Traffic Manager:

Parallelisierung im Großen

Auf allen Ebenen…

Global Windows Azure Bootcamp2014 March 29th 2014

Austria: Linz

http://bit.ly/gwab_at

Germany: Bad Homburg

http://bit.ly/gwab_de

Roman Schacherl | softaware gmbh@rschacherl

www.softaware.at

facebook.com/softawaregmbh