Datasports on Software Development

Articles and updates from Datasports about the craft of software

Archive for the ‘Best Practices’ Category

Running Effective Proof of Concept Projects

leave a comment »

1. Introduction

Lately I’ve had a few people wanting to discuss their proof of concept and/or vendor & tech evaluation projects with me, specifically around evaluating StreamBase for their needs on upcoming projects and products. Seems like as good a topic as any for an article, so here we go. My first use of StreamBase was when I was driving a PoC project for my then-employer, so I feel like I have some insight to offer on the subject, based on that and on my years of experience since.

There are 4 broad categories to consider when planning and executing any project like this: effort and duration of the PoC, project definition and scope, choosing the right resources, and applying the correct evaluation criteria. This article will offer some guidelines and suggestions for those 4 categories, specifically as they apply to evaluating StreamBase for your organization or project.

NOTE: This article covers PoC projects for the core StreamBase CEP platform, writing EventFlow logic and using provided Adapters. It does not cover anything specific to evaluating the LiveView product.

Read the rest of this entry »

Advertisements

Written by datasports

Jun 14, 2012 at 9:14 AM

Sharpening The Axe

leave a comment »

Introduction

The following quote is often misattributed to Abraham Lincoln:

Give me six hours to chop down a tree, and I will spend the first four hours sharpening the axe.

My bit of research hasn’t been able to identify the correct source of this remark, but regardless of who said it, I think it contains some valuable wisdom that is directly applicable to the development of software systems, large and small. In this article, I share some thoughts about being properly equipped and prepared to develop software in a professional setting.

Read the rest of this entry »

Written by datasports

Apr 9, 2012 at 5:33 PM

Thoughts on Encapsulation Schemes, Part 2

with 3 comments

1. Introduction

As discussed in the Part 1 of this article, StreamBase provides a variety of hosting mechanisms for .sbapp modules. Each of these mechanisms has its own set of options related to synchronicity and concurrency, which will be the focus of this article.

A big part of the win with the visual editing of StreamBase EventFlow logic is the ease with which threading models can be specified, modified, and tuned. In general, little more is required than to select a component or module and specify some concurrency parameters. Moving logic into or out of different processing threads is as simple as moving logic into and out of modules. In my experience, this is a huge productivity gain over traditional programming environments such as .NET or J2EE. Developers can begin by getting logic correct, then make targeted changes to tune the concurrency/threading settings to maximize performance where needed.

Of course, with this great power comes great responsibility. The ease of changing these settings means that no application is more than a few checkboxes away from bad performance due to thread-thrashing, or logic errors due to race conditions. This article will survey the different options and present some guidelines, but it will always be the responsibility of the application developer to gather the metrics, analyze the logic, and provide the insight necessary to ensure correct and high-performance behavior. Those analytical skills are not so different from what would be applied in other environments, but the big win with StreamBase is that the plumbing is all taken care of for you.
Read the rest of this entry »

Written by datasports

Oct 5, 2011 at 7:02 PM

Posted in Best Practices

Thoughts on Encapsulation Schemes, Part 1.

leave a comment »

1. Introduction

StreamBase has a set of related features which allow the quick and relatively painless refactoring of logic into modules, and several mechanisms for reusing those modules in your code. These are very powerful features which are an important part of what makes StreamBase development so productive compared to other environments like .NET or J2EE.

Despite being incredibly powerful and flexible, the mechanisms for encapulating and re-using logic, and the many options related to concurrency are accessible and straightforward to use. While the StreamBase platform handles an incredible amount of plumbing that would otherwise fall to the application developer, due care must still be taken to ensure that the correct approach is taken to ensure correct behavior with the highest possible performance.

This article will provide an overview of the many different combinations of hosting types as well as present some heuristics about when the different approaches make sense.

This discussion considers encapsulation schemes along two axes: hosting types (discussed in this article), and concurrency settings (discussed in Part 2 of this article). Not every possible combination is valid, but in general the type of hosting and the concurrency options are independent.
Read the rest of this entry »

Written by datasports

Oct 4, 2011 at 10:46 PM

Posted in Best Practices