Twin Cities Software Symposium

April 13 - 15, 2007 - Minneapolis, MN


Minneapolis Airport Marriott
2020 American Blvd East
Minneapolis, MN   55435
Map »

NOTE: You are viewing details about a past event. We will be back in MinneapolisOctober 4 - 5, 2013.
View the event details here ».

Brian Pontarelli

Founder of Inversoft

Brian Pontarelli is the founder and president of Inversoft, a Colorado based software company. In addition to Inversoft, Brian works on many open source projects including Struts, Savant and Java.net commons. In the past, he was the president of the Chicago Java User Group and an enterprise architect for Orbitz.

Brian has been programming for many years and works primarily with Java and Ruby. He has published various articles in both print and online magazines about Java, J2EE security, Java Server Faces and NIO.



Presentations

Java NIO

The Java NIO packages that were added in JDK 1.4 and these packages allow Java applications to perform true non-blocking IO operations. This presentation will cover the basics of the standard IO packages, which date back to the beginning of Java, and some of the shortcomings they have. This will be followed by coverage of the newer NIO packages and how they address these issues.

The NIO packages aren't simple to use and have a few dangerous pitfalls that many encounter when they first start using NIO. These pitfalls will be covered as well as solutions to each.

SOA Topologies

This talk will cover many of the different types of SOA topologies from EJBs and WebServices all the way to message queues and tuple spaces. SOA has many different meanings but it never dictates a single implementation and this talk covers many of the most common implementations of a service oriented architecture.

During the course of this talk we'll cover EJBs, JMS and general message queues, Jini, JavaSpaces, WebServices and ESBs. We'll discuss the pros and cons of each topology and what makes each a better or worse solution for various problems. We'll also cover the fundamentals of network computing and why it is important to understand that SOA is distributed and the impact distribution has on the selection and implementation of the topology of an application.

Attendees should walk away with a more broad understanding of SOA and the numerous ways of implementing this architecture. They should also understand how to go about selecting the correct topology or mix of topologies to meet the needs of their applications.

The ACEGI Framework

The ACEGI framework is a comprehensive security library built on top of the popular Spring Framework. This talk will cover the basics of using the ACEGI framework within a Java web application.

This talk will cover the details of getting started using ACEGI. We'll cover the ACEGI filter chain and how it works, login, logout, roles, authorization via access control lists, password encryption, and touch on annotation based security.

Attendees should walk away with the ability to start using ACEGI in their web applications and understand how all the ACEGI configuration work together to build custom security models.

Writing Good APIs

Writing APIs is fairly easy but writing an API that is usable and lives longer than a few days is hard. This talk discusses methodologies, tips and tricks for writing good APIs.

During the course of this talk we'll cover many of the common forms of APIs including base types, domains, services and toolkits and how to approach writing each type. We'll also cover the different between internal and external APIs and how to protect your code from your clients.

Attendees should take away a base set of tactics that assist in writing solid APIs.

Bullet Proof Builds

Learn how to create software builds that will stand the test of time and make the world a better place - okay perhaps just your development environment a better place. Builds are usually the tedious work that we all leave to the last minute or sometimes throw together as we build an application. But in most applications, builds contain complex logic and many dependencies, just as the application does. This presentation covers how to make a manageable and enjoyable build system using Apache Ant and a new Ant framework that is part of the JCatapult platform called JCatapult-Ant.

Most companies use the Apache Ant build system either for technical or political reasons. Many developers often wish they could use Maven 1 or 2 because of the plugin structure, dependency management and standardization it provides to applications. Ant sometimes gets a bad rap because it isn't the most simple tool to extend and build files often become large and unmanageable. Plus, Ant extensions are not simple to test and Ant lacks any concept of versioning. Even with all these problems, Ant can still be a great build environment and when used correctly can make creating builds a pleasure.

This presentation covers these topics:

  • JCatapult's Ant framework
  • Setting up a project
  • Adding plugins
  • Ant plugins - the what, how and why
  • Plugin versioning
  • Writing a new plugin
  • Using Groovy inside plugins

If you are using Ant for your builds, but want a better solution that includes reusable plugins, dependency management and much more, this presentation will show you how to use JCatapult-Ant to accomplish just that. However, if you aren't able to use JCatapult-Ant, but still want to understand how to create better builds using Apache Ant, this presentation will show you the methodology behind JCatapult-Ant's plugins and allow you to create your own custom plugin system.

Attendees must have a good working knowledge of the Ant build system in order to understand the material in this talk. No other knowledge is required.