Stuff I Say
 

Category Archives: Software Architecture

Building an Application Platform: Goals and Strategies

Organizations in the business of delivering software products can often benefit from developing an application platform.  An application platform has the potential to enable significant reuse of business logic across multiple products, it can provide an innovation sandbox for both internal and external developer communities, and it can enable the rapid addition of new features into existing products.  However, without a clear definition of the business goals, the right architecture strategy and an effective organizational structure, efforts to create an [...]

Decomposing a Service Oriented Architecture

One of the questions I’m most frequently asked is how to go about decomposing a system into services to develop a service-oriented architecture (SOA).  To understand how to divide a system into specific services, we first need to think about what we are trying to achieve with our software architecture.  In most large development projects, experience has taught us that we rarely ever fully understand the problem we are designing for at the outset of the project.  So, first and [...]

Building a Glassfish Monitoring Client Using REST

The GlassFish 3.1 Application Server provides a REST web service interface that enables service consumers to access administrative and monitoring features.  Although GlassFish’s web-based admin console is generally regarded as one of the better app server consoles, in my experience with previous versions of GlassFish, there are some cases where the web console can be difficult to use.  For example, during clustered server failover scenarios, the web console will freeze until the network connection times out, which can take a minute or two.   To allow [...]

Getting Started with Amazon’s Elastic Compute Cloud

I’ve recently started working with Amazon’s Elastic Compute Cloud (EC2) for my personal project and decided to capture the answers to some of the beginner questions that I worked through. Amazon provides a great deal of documentation, but I believe the organization of their documentation could use some work.  Before you begin working with EC2, you should start by reading Amazon’s Getting Started Guide.  Here are the answers to some basic start-up questions: 1) How do I launch an instance of an [...]

Architecting for the Cloud

My intention is for most, if not all, of the software I write for this project to run on the server side.  I plan to expose a RESTful Web Service API to consumers, which will authorize my software to retrieve their data from social networking sites and in return provide highly tailored recommendations for movies, books, businesses, etc, and connections to other social networking users.  I’ve outlined the project’s objectives here.  I’m now examining potential server side architectures and prototyping [...]

Software Product Lines

For the past several years I have been interested in applying software product line development techniques to the domain in which I work (unmanned air vehicles).  Specifically, I’m interested in applying these techniques to the development of Ground Control Station software. The concept of a software product line is well established in the software industry and a significant amount of academic and case study literature is available for review.  The basic idea is to develop a core software product where [...]