Crystal Lake provides key Java services available from Java application servers
and the J2EE framework, including Java server pages, Java Messaging Services and
Java / J2EE is considered by many to be a more robust and scalable platform than
Microsoft .Net, although this is a source of heated debate these days. One major
advantage of Java is the ability to run on multiple platforms or operating systems
other than Windows. One of the drawbacks of J2EE is the complexity of the standard
itself. This has been alleviated to a great degree by 3rd party open source solutions.
Java Technologies Utilized at CLS
J2EE, JSP, Servlets, EJB, Java Mail, JMS, JDBC, JNDI
XML Schema, XSD, XHTML, XPATH, SOAP, WSDL, UDDI, SAX, DOM, JDOM, Xerces, JAXP
Windows, Linux, UNIX
Ant, CVS, Eclipse, JBuilder
WebLogic, Tomcat, JBoss
UML, Design Patterns, OOAD/OOP, XProgramming
The following is a summary of some of the tools we use to extend
and augment our Java development efforts:
- Hibernate - Hibernate is an object-relational mapping
(ORM) library for the Java language, providing a framework for mapping an object-oriented
domain model to a traditional relational database. Hibernate solves Object-Relational
impedance mismatch problems by replacing direct persistence-related database accesses
with high-level object handling functions.
Hibernate's primary feature is mapping from Java classes to database tables (and
from Java data types to SQL data types). Hibernate also provides data query and
retrieval facilities. Hibernate generates the SQL calls and relieves the developer
from manual result set handling and object conversion, keeping the application portable
to all supported SQL databases, with database portability delivered at very little
- Spring - Spring enables you to enjoy the key benefits
of J2EE, while minimizing the complexity encountered by application code. The essence
of Spring is in providing enterprise services to Plain Old Java Objects (POJOs).
This is particularly valuable in a J2EE environment, but application code delivered
as POJOs is naturally reusable in a variety of runtime environments. One very useful
feature is Spring is the use of Aspect Oriented Programming (AOP). This allows you
to create system services such as logging or transactional support and easily use
them in your business logic components without that component having either the
logic or even the awareness of whatever system service is being employed.
- Apache Struts - The Struts Framework is a standard
for developing well-architected Web applications. It is an open source platform
based on the Model-View-Controller (MVC) design pattern providing which segments
a web application into three levels, namely application state, presentation and
application flow. The interaction between these layers is governed by an XML configuration
file. Struts itself includes the view and controller layers, the model layer is
left to the developer.
One of the advantages of this approach is division of labor, which allows developers
which have specific expertise work on their layer of the application without disrupting
the other layers. Generally this can be done without re-compiling the entire application.
There is also extensive support for web form validation.