Friday, January 24, 2014

Understanding Docker with an Analogy from Traditional Software Development

Docker, a Linux container that is becoming increasingly popular with developers for deploying apps to a cloud infrastructure. Docker allows application data to sync with the OS running on the cloud infrastructure. That means a developer can work directly from their desktop environment and use Docker to automatically sync updates.

Suppose a traditional software developer which follows the below steps as the development process.
  1. Checkout a remote SVN/Git repository to the local file system 
  2.  Improve the code in the local repository 
  3. Test the code in local repository 
  4. Push the modifications back to the remote repository, so others can update those modifications 
Then pushing those modifications to the production deployment is handled by a separate deployment engineering team. As developers only test their modifications in a local environment rather in the production environment, there can be bugs introduced in the production environment. This is mainly due to configuration differences between the local test environment and the production environment. This sort of bugs cause a lot of friction in the deployment process.

Docker tries to tackle this. Comparing with a source code repository system (SVN/Git) which manages the source code, Docker manage the complete software deployment (i.e. source code, configuration) as a "Container". This ensures every developer test their code in a developer environment exact similar to the production environment.

When it comes to maintaing the configuration of components with in the Container, it follows a JSON representation as follows.

Wednesday, January 22, 2014

WS-BPEL 2.0 Beginner’s Guide

Professor Matjaz B. Juric and I authored the book, titled "WS-BPEL 2.0 Beginner’s Guide". This book will be available in the near future and you can pre-order via PACKT Publishing site. We started working on this since 2012 and I would like to thank all who are behind the success of this book.


What you will learn from this book
  •     Design and develop WS-BPEL 2.0 executable business processes
  •     Get familiar with BPEL 2.0 activities and the most important usage scenarios
  •     Develop a BPEL process to invoke other services and orchestrate them
  •     Learn how to declare variables and store, assign, copy, and manipulate data within variables
  •     Understand conditions and learn how to use the activities and loops
  •     Invoke external web services using asynchronous communication channels
  •     Recognize fault-handling capabilities to manage faults and to avoid unexpected states
  •     Organize a BPEL process into hierarchical orders using Scopes
  •     Define repetitive tasks in sequential or in parallel using dynamic parallel invocation activities

In Detail
Business Process Execution Language (BPEL, also known as WS-BPEL) has become the de facto standard for orchestrating services in SOA composite applications. It enables automation of business processes, reduces the gap between business requirements and applications, and allows better alignment between business processes and underlying IT architecture. BPEL is an open specification and one of the most important pieces of SOA. Therefore, learning BPEL is essential for successful adoption of SOA and for the development of composite applications.

This book provides a fast-paced practical introduction to WS-BPEL, one of the centerpieces of SOA. It covers the most important features of BPEL 2.0 and provides several real-world examples to underline its concepts. In addition to BPEL specifications, the book provides comprehensive coverage of BPEL support in JDeveloper and Oracle SOA Suite.

This book starts with an introduction to BPEL. It first teaches you how to develop your first BPEL process and understand the basic structure of BPEL processes. It will then move on to explain the core concepts such as invoking services, synchronous and asynchronous processes, partner links, the role of WSDL, variables, flows, and more.

Moving ahead, this book will make you familiar with concepts such as human tasks, fault handling, transaction management and compensation handling, scopes, events and event handlers, concurrent activities and links.

The book takes a fast-paced practical approach to WS-BPEL design and development based on practical examples and clear descriptions of the most important usage scenarios. This book is all you need to get up and running with WS-BPEL development.

Approach
A systematic guide for beginners which focuses on getting you up and running with building BPEL processes and learning the BPEL language with clear instructions and examples.

Who this book is for
If you are a software architect, a designer, a software developer, an SOA and BPM architect, a project manager, or a business process analyst who is responsible for the design and development of business processes, composite applications, and BPM/SOA solutions, then this book is for you. You should have a clear grasp of general SOA concepts including business processes and web services, but no prior knowledge of the BPEL language is required.