What We Do — Services

Java/JEE

We've sorted out the paper and plastic from our project files and found all the good technical junk. Enjoy!
Project: Real Time Control system
Duration: 1.5 Years Team Size: 3 Type: Outsourced

Technical Environment: Linux, Windows, Java, C++

Brief Description: A highly distributed system which will expand to support numerous features, thereby creating a single platform for future product releases.

The User Interface application is built in Java to enable the UI to run on Windows or Linux. Uses Swing with many custom controls to achieve a unique and highly polished look. To separate concerns and enable code reuse, much of the business logic is implemented by a middle layer written in C++. The Java UI communicates with the middle layer using JSON over HTTP sockets.

Buzzwords: Cross-platform, Java, JSON, C++, Custom Controls

Project: Java Enterprise Edition using WebSphere
Duration: 2 Weeks Team Size: 1 Type: Contract

Technical Environment: JEE, WebSphere, Oracle, EJB 2.0

Brief Description: Our client had a product that had been released in 2002, but had a short life span because of marketing and implementation issues. The client inherited the code and was suddenly faced with a very real need for the software to be working and deployed within a short period of time. To further complicate matters, they did not have in house capability with JEE, WebSphere and EJB 2.0.

We worked with the client to resuscitate the old software, connect it to Oracle, deploy it on a development server, and mentor the in-house team on the basics of the software. The software was well written EJB 2.0 combined with JSP pages and some Servlet code. We were challenged to work within a 2002 version of WebSphere studio in order to best accommodate the customer's immediate needs. After the first few days we were able to bring the application fully on-line. From that point we worked to give the appropriate in-house personnel access to the Web application using their current Internet Explorer browsers. We fixed a small browser compatibility issue and then started testing the application in earnest. We discovered a need to link the project over into Perl script for the major reporting component. With some help from some of the in-house Perl folks, we quickly solved this and the Perl reports really made the application shine. We did a code review and then it was off to meet with the big bosses. With our combined team of an in-house business analyst, an in-house software designer, and the Stout JEE developer, we met with the management team for this project. The meeting went well and they have begun to move forward with a full deployment of the application.

Buzzwords: JEE, WebSphere, Oracle, EJB 2.0, Project Rescue

Project: Java Server Faces Consulting
Duration: 3 Months Team Size: 1 Type: Consulting

Technical Environment: Java EE 5/6, Linux, Windows, JBoss, Glassfish, Oracle, MySQL

Brief Description: Our client began migrating its client/server applications to the Web. Because their core competency had been in thick client 2-tier applications, the team determined they were in need of outside assistance to deliver the ideal strategic and tactical IT solution to meet their budget and client business needs. They agreed that bringing in an expert in state of the art Web technologies would significantly ease the transition of the software—and at the same time facilitate current team members’ adaptation.

The solution involved designing and developing a dynamic data driven Web application which enabled a rich client environment by leveraging JSF (Java Server Faces) and Seam. In addition to application development, an improved continuous integration environment was put in place including updated revision control systems, unit and integration testing architecture, automated continuous build tools, and monitoring.

At the end of the contract our consultant was converted to a direct-hire position.

Buzzwords: Java Server Faces (JSF), Spring, Hibernate, AJAX, Seam, Icefaces, Oracle

Project: Java Consulting
Duration: 3 Months Team Size: 1 Type: Consulting

Technical Environment: Oracle, GlassFish, Spring Framework, Hibernate, Seam, JSF (Java Server Faces), IceFaces

Brief Description: Our client was underway migrating its client/server application to the Web. The team determined that it would benefit greatly by having a consultant available approximately 5-8 hours per week for on-site meetings, code reviews, and the like as well as off site question and answer sessions.

The first task was to streamline the development environment and tighten configuration management. Maven was introduced for managing Java dependencies and builds. Complementing Maven are Artifactory, a Maven artifacts repository, and Luntbuild, a continuous integration build system.

While JEE with Spring and Hibernate were established as architectural cornerstones, no commitment had been made regarding a UI framework. Rich Web 2.0 features were among UI framework selection criteria as were architectural soundness and developer productivity. JSF was readily accepted as the foundational UI technology and the Seam Framework was selected for its inherent Spring/Hibernate integration and its ability to overcome JSF shortcomings.

Accomplishments include:

  • repeatable builds
  • standardized JEE project archetype
  • successful, rapid adoption of JSF and the Seam Framework
  • increased application deployment flexibility via Spring configuration techniques

Next up is an initiative to eliminate the requirement to maintain a separate database schema for each customer (due to differing data requirements). So far an end-to-end proof-of-concept project that demonstrates management of dynamic fields has been successfully completed. Practical issues relevant to this approach, such as performance and reporting, will require a solution before adoption and are among ongoing tasks.

Buzzwords: Java Server Faces (JSF), Spring, Hibernate, AJAX, Seam, Icefaces, Oracle

Project: Printed Circuit Board (PCB) CAD Application
Duration: 2 Years Team Size: 1 Type: Staffing

Technical Environment: Java, Java2D/Java3D graphics, SQL, Swing

Brief Description: This project involved developing a printed circuit board (PCB) CAD application that was deployed on both Windows desktops and Linux-based circuit inspection systems. Full product-lifecycle development was provided starting from a small set of high-level requirements, developing a flexible and robust software architecture, implementing, testing and documenting the solution, and deploying the product to end users. The CAD application:

  • Parses several PCB CAD formats
  • Precisely renders multiple 2-D PCB layers
  • Allows user to interactively edit and manipulate PCB models
  • Specifies inspection criteria for numerous properties
  • And produces CAM output formats

The application is capable of automatically identifying regions of interest such as solder paste deposit regions, fiducials, and PCB dimensions. The inspection criteria specified by the user are then used by laser inspection systems to validate PCB assembly.

Buzzwords: Java, Java2D Graphics, Java3D Graphics, multi-threading, SQL, Swing, JUnit, CAD, Printed Circuit Board