Hinweis: Die aktuelle OOP-Konferenz 2016 finden Sie hier!
SIGS DATACOM Fachinformationen für IT-Professionals

RESPONSIBILITY:
Building Reliable Environments

München, 26. - 30. Januar 2015

Conference

Pattern-oriented Concurrent Programming with Java

Date:29.01.2015
Time:18:30 - 20:00
Session: Ndo 1
cart

This presentation will describe by example how to apply patterns to alleviate the complexity of developing concurrent applications and services for mobile and tethered devices via the use of object-oriented design techniques and Java concurrency language and library features. An case study will be used throughout the presentation to showcase pattern-oriented software design and programming techniques for concurrent applications and services in the context of Java.

Target Audience: Architects and Developers
Prerequisites: Basic knowledge of Java 
Level: Practicing

You will learn:
• Recognize the inherent and accidental complexities involved with developing concurrent Java software that communicates between processes and threads.
• Understand how pattern-oriented software architecture and framework techniques can and cannot help to alleviate these complexities.
• Apply patterns and frameworks to develop reusable and resilient concurrent applications and services using the Java object-oriented programming language and its standard libraries.
• Know where to find additional sources of information on how to program concurrent Java applications and services.

Extended Abstract:
The confluence of multi-core and distributed-core processors, inexpensive mass storage, ubiquitous wireless connectivity, and commodity software platforms is driving the need for software engineers and programmers who understand how to develop concurrent software for mobile and tethered devices that connect to cloud computing platforms. Despite many improvements in processors, storage, and networks, however, developing quality software on-time and on-budget remains hard. Moreover, developing high quality reusable concurrent software apps and services is even harder. The principles, methods, and skills required to develop such software are best learned by attaining mastery of patterns and frameworks.
A pattern describes a reusable solution to a common problem that arises within a particular context. A framework is an integrated set of components that collaborate to provide a reusable architecture for a family of related apps or services. Frameworks can also be viewed as concrete realizations of patterns that facilitate direct reuse of detailed design and source code.
This presentation will describe by example how to apply patterns to alleviate the complexity of developing concurrent applications and services for mobile and tethered devices via the use of object-oriented design techniques and Java concurrency language and library features. An case study will be used throughout the presentation to showcase pattern-oriented software design and programming techniques for concurrent applications and services in the context of Java.
In addition to covering Java Threads and build-in monitor objects, this presentation will also show how to use key synchronization and scheduling classes in the java.util.concurrent and java.util.concurrent.locks packages, including ReentrantLock, ReentrantReadWriteLock, Semaphore,
ConditionObject, CountDownLatch, AtomicInteger, and ExecutorService. The case study examples will show how these classes implement and can be used to implement fundamental Gang-of-Four and POSA concurrency and synchronization patterns, such as Monitor Object, Thread-Specific Storage, Command Processor, Active Object, Half-Sync/Half-Async, Template Method, Strategy, Bridge, and Factory Method patterns.