Using IBM rational application developer to develop enterprise applications with Java EE, Dojo server faces and interconnecting them using SOA

Motivation and Justification: Year to year, companies invest a lot of their budget in maintenance and improvement of their applications to keep on the leading edge of technologies and take advantage over their competitors. Some of the common troubles that companies are facing with are the lack of skills in their personnel to update and incorporate new technologies to existing applications and/or legacy applications that are difficult to support, as well as to process huge amounts of information; this implies a high cost to achieve such goals. In highly competitive environments, the developers do not have much time to create enterprise applications that meet with some infrastructure requirements such as: security, transaction, audit, and others, as well as the creation of fast, dynamic and easy to use Graphical User Interfaces (GUI)s that can be a very tedious and complicated process. Moreover, as applications evolve, they could require communication with other applications based in different technologies that address particular needs, and enabling the communication between different technologies is an expensive and difficult process. This is usually achieved by using glue code that is tied to the involved applications, hard to maintain, tightly coupled and not extensible at all. As response to these problems, new technologies have been created to help implement solutions for them; such as the Java™ EE technology which provides a set of common services to develop enterprise applications and is also an standardized platform that allows the IT infrastructure to be untied to a particular vendor, or Dojo Server Faces (DSF) library that provides a set of UI components so the developer can create responsive, dynamic and easy to use GUIs with much less effort than creating them from scratch, and the Service Component Architecture (SCA) technology that helps companies to interconnect applications implemented with different technologies allowing the enterprise infrastructure to change with a minimum of impact and/or effort, in a Service Oriented Architecture fashion. However, the use of these technologies can be complex and prone to human errors, since them involve handwriting metadata and other artifacts that can be hard to configure. Proposed solution. "Rational Application Developer provides developers with smart tools that promote best practices, team productivity, innovation, and agility. This award-winning integrated development environment enables developers to quickly build, test, analyze, and publish Java EE 6, Web 2.0, and Service Oriented Architecture (SOA) applications" Within this workshop we will create a scenario where the problems previously mentioned in this document will be exposed. We will discuss the technologies that can be involved in the solution of such scenario with a minimum of effort and also preparing the field to allow the application to grow as needed without affecting the applications already running. Then, the attendee will be guided to develop a solution for such scenario using IBM® Rational® Application Developer (RAD) and IBM® WebSphere® Application Server. The Scenario: The marketing department of a big bank has decided to open a new program to reward their customers with gifts and promotions depending on their account balance in the past months. This bank has an application already running that contains account information required to grant such rewards, but they want to create a new section in an existing web application where customers can access and check the status of their accounts to see whether they have a granted reward and in such case get specific information for claiming the reward. As part of the requirement, the application will have to run a complex algorithm to select the accounts that will be rewarded, this will have to run automatically every day. The solution: We will define the architecture within tree layers: the business logic layer, the UI layer and the data access layer using Open Services Gateway initiative (OSGi) to achieve good modularization. The business logic will be encapsulated in Plain Old Java Objects (POJO) and the task of running the complex algorithm will be handled by a Modern Batch Project using WebSphere Compute Grid (WCG). The UI will be developed using Java Server Faces (JSF) v2.0 technology with DSF library. The data access layer will be handled by Java Persistence API (JPA) in order to access an existing data base. Finally we will use SCA to interconnect the Modern Batch Project with OSGi. Within this workshop the attendee will learn how to use RAD Tools to incorporate mature technologies like Java EE6, open and emerging technologies like SCA, programming models for componentization and modularization like OSGi, and JSF to build responsive, dynamic and easy to use web UI.