The Developer Shortcut Guide to SUSE Linux

by John Featherly


Written for experienced developers who are looking to get a quick start on writing open source–based enterprise applications, The Developer Shortcut Guide to SUSE Linux, authored by John Featherly, offers the most up-to-date information on the capabilities of SUSE LINUX as a development environment for enterprise .NET and Java applications.


Chapter 1: Using SUSE Linux Professional

Application development has a long and interesting history. From the switchboard plugs that programmed the first computers to today’s Web applications, a lot has happened. Academic discussions ebb and flow around topics such as software design, architecture, and methodologies in a quest to determine whether programming is an engineering discipline or an art or neither.

Adding to the many facets of this discussion is the open source movement—one of the most interesting things happening in application development today. Hardly a newcomer, open source had its formal roots planted 30 years ago by Richard Stallman at MIT. Software has a dual nature of being both a representation of an algorithmic idea and a creative product not unlike a musical or theatrical recording. Open source addresses these two aspects in a clear and straightforward manner. The algorithmic ideas are free and “open” in that their representation is the source code and that source code is available to anyone. The creative product is “produced” by a community of contributors that include management as well as technical contributions. This community is almost always virtual, global, and open to any interested person.

This guide is targeted at experienced developers who are looking to get a quick start on writing open source-based enterprise applications. These are developers writing custom corporate applications used for unique business solutions in contrast to applications written for general use. This guide is not necessarily targeted at developers looking to get involved and contribute to open source projects (or possibly start an open source project).

Chapter 1 will take a look at the SUSE Linux Professional product features with special attention to application development components. First, we’ll look at the desktop environments GNOME and KDE, then we will explore application packages and tools. We will be looking at two major application technologies in parallel throughout the guide: Java and .NET; this chapter introduces the components used for Java and .NET development on Linux. Finally, we’ll take a look at configuring an SUSE workstation for application development.

Chapter 2: Java Enterprise Applications

Java Enterprise Applications use J2EE (Java 2 Enterprise Edition) technology to create server based n-tier applications. N-tier design is an evolution of client/server design that can be thought of as 2-tier. The typical 3-tier application is made up of presentation, business logic, and back-end tiers. Java uses the term JavaBean to represent the component architecture for Java Objects. The mapping of JavaBean types to tiers in the 3-tier application consist of:

  • Presentation tier to JSPs/Servlets
  • Business logic tier to “session” JavaBeans
  • Backend tier to “entity” JavaBeans

J2EE infrastructure provides containers for hosting components offering common resources and services. A complete J2EE application consists of multiple components hosted in containers that communicate and interact to achieve the overall goals of the application. The J2EE application developer writes the Java objects that are the core of all components. The developer also writes deployment descriptors that specify the parameters for packaging, installing, and running the component. The complete application package is bundled into a file called an Enterprise Archive (EAR). The Enterprise Archive can then be deployed to a J2EE Application Server, which unpacks it, sets up the components, and starts the application.

This chapter will look at the mechanics of writing the components and packaging the application and the Open Source tools available to assist the developer in both areas. It will also look at the Open Source J2EE Application Server product JBoss, developing a sample J2EE application and deploying it to a JBoss server.

Chapter 3: JBoss Enterprise Applications

In addition to developing applications using Eclipse and the JBoss IDE plug-in, which the previous chapter explored, the application needs to be run, tested, and debugged. This chapter will look at how to use JBoss to execute and debug applications, discuss in more detail the data source connection for Container Managed Persistence (CMP), and explore how to configure various database products as persistence engines. Finally, the chapter will look at JBoss Application Server (AS) structure and management and other JBoss features—Java Business Process Management (jBPM) and JBoss Portal.