white bar background yellow bar background
Colorado Software Summit 2007 banner
Colorado Software Summit logo

The Best Way to Master a Technology Is to Teach It to Others

David Moskowitz

Productivity Solutions, Inc.

Amdahl's Law: The New Rules of Concurrency

Does your application use multiple threads? Is your application set up for concurrency? Amdahl's Law can be used to predict the maximum theoretical improvement in performance using multiple processors. What does that mean? How does it apply? At one point Moore's Law meant faster processors, today it means more processors — a concurrent hardware environment whether you like it or not.

Look at CPU utilization while your application is running. If the application doesn't use both processors, then you aren't achieving maximum performance. That also means your application doesn't scale. What can you do? Java (and other languages) supports multi-threading. However, merely paying attention to threads isn't enough. In the multi-core world, you want to do the things in parallel that can be overlapped, but you also have to pay attention to the things that must be serialized. This brings us back to Amdahl's Law. We know it's impossible to achieve theoretical maximums. Do you know how to get close?

In this presentation, David address these questions in the context of the three critical issues you need to consider: structure, safety, and scalable implementations. How do you structure your code to run in a multi-core system? What can you do to assure thread safety? How do you put it all together to make Amdahl's Law work for you? How do you get it to scale? Along the way we'll look at some familiar concepts (e.g., encapsulation, resource management, serialization and more), and some new ideas made possible with the latest releases of Java (e.g., annotations). If you're working on enterprise application development that runs either on a multi-core system or multiple systems, don't miss this presentation.

The Zen or Tao of SOA and SaaS

When does it make sense to consider SOA, versus supplying the software as a service? What's the real difference between the two? When does it make sense to consider either approach, and when doesn't it? What happens when SOA or SaaS integrate with Web 2.0? A service-oriented architecture makes sense in some circumstances and not in others. SOA is usually tied directly to business processes, not applications, while Software as a Service requires a different approach to developing applications. Although both are network-based, the fundamental paradigms for the two approaches are not the same. In this presentation David will explore the differences between the two, including the reality and the hype, from both a business and developer/technology perspective.

What Is ITIL? Why Should I Care?

This was an ad hoc "Birds of a Feather" presentation that David presented one evening during the conference.

Photo of David Moskowitz

David Moskowitz is a Principal Consultant at Productivity Solutions, Inc., a Bala Cynwyd, Pennsylvania-based consulting firm that helps its clients thrive in an eBusiness economy. David is an object-oriented mentor and architect. In these capacities, he has guided many successful projects. He is currently serving as the architect for a Web 2.0 startup that will offer both a service-oriented architecture framework and software as a service. The goal for the effort is to create a Web-based business model that capitalizes on the strengths of the respective different approaches (SOA and SaaS). David has been a speaker at every Colorado Software Summit and his sessions are always timely, well rated and attended.

Email: davidm2@usa.net