- Shopping Bag ( 0 items )
Web Development with TIBCO General Interface
Building AJAX Clients for Enterprise SOA
Use TIBCO General Interface to build web applications with state-of-the-art performance and usability
TIBCO General Interface provides powerful tools and a framework to craft AJAX-based web applications that rival desktop applications in performance and usability. This is the only book that offers developers thorough guidance for using TIBCO’s award-winning open source tools to build interactive, high-performance GUIs and integrate them with leading server-side technologies. Experienced TIBCO General Interface developer Anil Gurnani focuses on applying General Interface in real-world production applications and presents numerous working examples that can easily be adapted for your existing sites and applications.
You’ll first walk through the fundamental concepts and techniques needed to build powerful General Interface clients. Next, you’ll dive into specific back-end technologies, mastering them through start-to-finish case study projects. Finally, drawing on his own experience building enterprise-class General Interface applications for the financial services industry, Gurnani illuminates advanced topics ranging from charting and collaboration
to application optimization. Coverage includes
Anil Gurnani’s book greatly augments the available information for developers learning and using TIBCO’s General Interface. …With this book, you will quickly be building General Interface applications, faster and easier than ever before.
—Michael Peachey, co-founder of General Interface and Director of User Experience, TIBCO Software
Anil Gurnani has written extensively on technical topics for many prestigious magazines. He is an adjunct at SCPS, New York University, where he teaches advanced courses focused on web and enterprise technologies including Core Java, JEE, and .NET. He is also an expert at managing large, global, multifunctional teams to architect and build complex distributed systems with a portfolio of front-end applications and back-end services.
About the CD-ROM The accompanying CD-ROM contains all source code files for working examples. Updated code and additional resources are available on a companion website.
Foreword by Michael Peachey
Foreword by Luke Birdeau
Chapter 1 What Is TIBCO General Interface?
Tools and Utilities
Web Application Model
TIBCO General Interface Application
General Interface’s Performance Edge
Compiler in the Browser
Rapid Prototyping Tool
Chapter 2 Understanding General Interface Architecture
Model View Controller Architecture
General Interface Application Life Cycle
Application Object Model
Common Data Format
Commonly Used Classes
XSL Style Sheets
Chapter 3 Quick Start TIBCO General Interface
Building and Packaging Standalone Prototypes
Installing TIBCO General Interface
Launching GI Builder
Internet Explorer 7 on Windows
Mozilla Firefox on Windows
Mozilla Firefox on Macintosh
Building the Application
Deploying General Interface Applications
Deploying the Application as a Standalone Prototype
Deploying the Application Under IIS
Deploying the Application Under Apache Web Server
Deploying the Application Under Tomcat
Deploying the Application as a WAR File Under Tomcat
Chapter 4 Working with XML and XSL
XML/XSL Merge Tool
XML Mapping Utility
Chapter 5 Component Gallery
Menus and Toolbars
Chapter 6 Sharing Assets Across Multiple Applications
Advantages of Sharing Components
Shared Components in General Interface
Building Shared Components with GI Builder
Building the Announcements Panel
Building the Customer Service Panel
Building the Ad Banner
Building the Custom Tabbed Pane
Editing Component XML Files
Building the Banking Application
Building the Investing Application
Defining Classes in General Interface
Defining Interfaces in General Interface
Defining Packages in General Interface
General Interface Event Model
Dynamic Class Loading
Building a Sample Using MultiSelectMenu
Chapter 8 Advanced Features of Matrix
Rendering Tabular Data
Rendering a Tree Structure
Using XML Transformers
Using Value Templates
Using Format Handlers
Displaying Controls in Columns
Available Controls in Matrix Columns
Manipulating Data Dynamically
Commonly Used Methods of the Matrix Class
Chapter 9 Integrating with Web Services
Web Services Related Standards
General Interface and Web Services
Building a Web Service
Deploying a Web Service
Deploying Under Axis2 in Tomcat
Deploying Under IIS
Developing a Web Service Client Using General Interface
Building GUI Screens for the Sample General Interface Client
Mapping the Response to CDF Document
Mapping Input Fields to Request Messages
Chapter 10 Integrating with Portals
Anatomy of a Portal
Portal Value Proposition
Aggregation of Content from Various Applications and Sources
Federated Search Across All Data Sources
Private Labeling and Branding
Support, Operations, and Monitoring
Use of General Interface Framework
GI Cache Utilization
Entering and Leaving the Page
Minimizing Asynchronous Calls
Versions of General Interface
The primary focus of this book is an award-winning product—TIBCO General Interface. Because TIBCO provides excellent documents and tutorials on building client applications using TIBCO General Interface, much of this book focuses on how to integrate those client applications to various back-end technologies. The first part of the book discusses the basics of building General Interface clients. The second part dives into specific back-end technologies and provides complete end-to-end examples with each major server-side technology. For example, Chapter 12, “Integrating with Messaging Systems,” includes complete details about how to set up a message queue, send messages to it, and build a simple middle-tier application using the CometProcessor interface that receives messages. It also includes how to use TIBCO General Interface to build an AJAX client that receives those messages asynchronously and displays them in the browser. The third part discusses advanced topics such as optimizing performance of General Interface–based client applications.
This introduction provides an overview of tools and technologies available today to build browser-based client-side applications. Then it takes a closer look at TIBCO General Interface and discusses its unique advantages. Finally, it provides a list of all the sample applications that are included in this book and on the companion CD-ROM.
The Internet has changed much more than the way business was done. It changed the way we live. The World Wide Web was a major 10X force for many businesses in the early to middle ’90s. Business and technology changed very rapidly. Many brick-and-mortar businesses could not survive the tsunami of the Internet wave and were replaced by Internet-based businesses. Traditional technology giants like Microsoft were threatened by new entrants like Netscape. Internet startups were springing up everywhere like weeds. New standards and technologies evolved that dramatically changed the application development landscape from client-server tools like PowerBuilder to web-building tools like Dreamweaver and FrontPage.
New standards are evolving yet again to redefine the World Wide Web. Web 2.0 has taken shape as the next tsunami to hit the Internet world. This one is many times the size of the first wave. The power of the individual is recognized everywhere now. Time magazine’s 2006 person of the year was “you.” Whereas the traditional media model was one to many—for example, newspapers, television, and radio—Web 2.0 offers many-to-many communication with blogs and Wikis that allow anyone anywhere to reach out to a number of people. Sites like YouTube, MySpace, Facebook, and Digg have become the favorite destinations of many. People are now connected even more by instant messaging, live meetings, and desktop sharing.
The music and publishing industries have also been transformed. Napster introduced the concept of Peer to Peer (P2P) computing and threatened to take the power from big record companies. Music albums and songs are released for digital downloads now instead of being sold in stores. Sales of digital books have been rising, and sites such as Safari Digital Bookshelf (http://www.safaribooksonline.com/) are giving readers an alternative to printed books. Modern eBook readers are introducing a new concept in how books and the news are delivered and consumed.
Zoho, ThinkFree, and Google are threatening the software giant Microsoft’s dominance in the office applications market by providing office tools online for little or no licensing cost. Software as a service has now become a reality. Most common software applications such as accounting, time management, project management, and many others are available online for anyone to use and pay per use.
Technologies such as AJAX, Flex, and web services are commonly used by developers to create Web 2.0 applications. New standards such as WSRP, Portlet (JSR168), WS (Web Services), and JEE5 are again changing the application development landscape. Applications or services that are built using these standards can collaborate much more effectively and easily.
Rich Internet applications use the Internet as the platform and are capable of running inside any browser, regardless of what machine or platform it is running on. TIBCO General Interface helps build such rich Internet applications for Web 2.0, and it does so remarkably well. Its unique model and approach to design gives it an enormous performance edge that is hard to beat today and will continue to remain difficult to surpass.
Although it is possible to build such user interfaces by making individual AJAX calls, it can be very time consuming, and the resulting code can become quite difficult to maintain. Several frameworks based on AJAX have evolved in the past several years to address this issue. Following is not a comprehensive but a brief overview of some tools and technologies similar to TIBCO General Interface and how their targets and uses differ from those of TIBCO General Interface.
GWT is in the open-source domain, available with source code under the Apache 2.0 license. Google uses it on its own website in its popular email web interface of Gmail and other Google websites such as Google Docs.
Adobe’s Flash player is the most popular browser plug-in available for most browsers on most platforms. It is almost an integral part of all web browsers and has an installed base that is almost equal to that of Internet browsers. Initial versions of Flash used a downloadable file that could be played back similar to media files like audio or video. Adobe has since extended that model to include streaming media and a number of controls and widgets that can be used to program dynamic web applications with a rich user experience. Although the primary target of Adobe Flex is media-rich applications such as games and videos, it is possible to build applications using the Adobe Flex framework that run inside the browser using the Flash player software.
The latest version of Flex is Flex 2, which is available from Adobe to build applications for Flash. Adobe’s model allows users of Flash Player software to download it for free; however, technologies and tools required to “build” on that platform are not free.
Adobe’s Flex technology includes a Flex Builder, which is based on the popular Java IDE Eclipse. If you already use Eclipse, Adobe provides a plug-in that can be downloaded and installed to use with Eclipse. To build applications, developers use the IDE to create a Macromedia XML (MXML) file that defines the screen canvas and the controls and widgets in it. The MXML format is XML constrained by tags defined by Adobe. Because Flex was originally developed by Macromedia, hence the name—MXML.
Component gallery in Flex 2 Builder includes a number of ready-to-use controls and components such as widgets. Visual components like Button, CheckBox, ComboBox, DataGrid, DateChooser, and others can be combined with Navigators like Accordion, Menubar, and TabBar in layouts including Panel. Tiles can be dragged and dropped onto the Canvas to build the GUI for the application. Flex 2 also includes various Chart components to create charts for the web.
Flex 2 Builder supports “source code” and “design view” similar to tools like Dreamweaver. In the source code view, developers can manually insert components by typing the corresponding MXML tags that define the controls. In the design view, developers are able to drag and drop components onto the canvas and set the appropriate properties in the Property Sheets on the right. Program coding is done in Macromedia’s Action Script files, which can contain logic to update screen components. To prepare the application to run in the browser, you must “build” it into a “swf” file, which is Adobe’s proprietary format for files that are run by the Flash player plug-in in the browser.
Although Adobe Flex follows a very similar concept as TIBCO General Interface, its primary target is media-rich applications that require animation and need to have embedded movies or video content in them. Running a TIBCO General Interface does not require any plug-in software, whereas Flex applications will not run without the Flash plug-in.
Dojo’s widget library, Dijit, is the collection of GUI controls including accordions, combo boxes, date picker, and more. These controls are template driven and highly extensible so that developers can build their own widgets using Dojo. DojoX extends this widget library further and adds Grid and Chart components to the Dojo Framework.
Dojo is available under the Academic Free License, which is extremely liberal and allows commercial distribution and sublicensing of the software for works derived from Dojo. Dojo can also be used under the BSD License, which is also quite liberal and does not impose any restrictions on use and distribution of the software. Dojo’s intellectual property rights are owned by Dojo Foundation, which is a nonprofit organization created to distribute the Dojo code in a vendor-neutral way.
DWR complements TIBCO General Interface very nicely and provides a framework for TIBCO General Interface classes and widgets to make direct calls to custom Java components on the server side. General Interface provides the framework and base classes, and DWR provides the marshaling and unmarshaling to make it easy to develop applications that need to communicate back and forth between browser and server. This can enhance the already rich library of GUI widgets that TIBCO General Interface has.
Backbase provides early access to a custom Integrated Development Environment (IDE) similar to TIBCO GI Builder for building Enterprise AJAX applications using Backbase.
OpenLaszlo does not include a visual IDE to build applications. Developers must build applications by coding the main.lzx file with XML syntax to include components that are predefined by the OpenLaszlo framework. The server component then interacts with the user and supplies the appropriate runtime to the user depending on the client browser.
Proliferation of AJAX frameworks and toolkits in the last few years points to the importance of AJAX technology in shaping the future of the Web. Among other similar frameworks are
There are many more. TIBCO’s General Interface is one of the earliest entrants in the AJAX world since 2001. Backbase started in 2003, and most others started afterward. The rest of this book is focused on TIBCO General Interface.
This book explores various features and aspects of TIBCO General Interface and provides examples of how to build fully integrated rich Internet applications using TIBCO General Interface tools. Following is an overview of the sample applications that are available on the companion CD-ROM and are discussed in the following chapters:
dow30 client application: A simple General Interface application that displays the 30 component stocks of the Dow Jones Index.
dow30 war file project: A complete project for deploying General Interface applications under Tomcat.
dow30 client application: The dow30 application from Chapter 3 built using XML Mapping Utility.
dow30 client application: The dow30 application from Chapter 3 built using XML Transformers.
GI Component Gallery: Simple General Interface application showing built-in General Interface components and widgets.
GI Menus and Toolbars: Simple General Interface application to demonstrate menus and toolbars and other useful General Interface elements.
Online Banking example: A simple General Interface application showing menus and some sample content for a retail banking application.
Online Investing example: A simple General Interface application showing menus and some sample content for a retail online investment management site.
Multi Select Menu example: A simple General Interface application using a custom menu component. The application also demonstrates the powerful event mechanism available with General Interface.
Oilconsumption example: A General Interface application that shows world oil consumption for the past several decades. This application demonstrates the use of value templates to control the styles in the Matrix component in General Interface.
Watchlist example: A General Interface application that demonstrates how to dynamically update the contents of a Matrix cell in General Interface.
MiTunes Service in .NET: A .NET web service built in Visual Studio 2005 that returns a list of songs.
MiTunes Service in Java: A Java web service built using Apache Axis 2 that returns a list of songs.
MiTunes client application in General Interface: A General Interface application that communicates with the web service to retrieve and display a list of songs.
GI Portlets Page: A JBoss portal application consisting of two JSR 168 portlets, each of which has a General Interface application embedded in it, and both portlets are embedded into a single Portal page.
GISQL in .NET: A .NET database application that returns Customer Orders and Order Details from the Adventure Works database on SQL Server 2005.
GISQL in Java: A Java database application that returns Customer Orders and Order Details from the Adventure Works database on SQL Server 2005.
Master Detail example: A complete application including General Interface and the Java components to display orders and details from the Adventure Works database using SQL Server 2005.
Paginated Grid example: A complete application that uses server-side pagination to display a list of Customers from the Adventure Works database.
JMS Publish and Subscribe example: A General Interface application that communicates with middle-tier components to publish JMS messages and displays messages received via JMS Topic.
Rolling Grid example: A General Interface application that uses CometProcessor to asynchronously receive data and display it in a scrolling grid.
Active Matrix Booklist service example: An Active Matrix service to get a list of books.
Active Matrix client in General Interface: A General Interface client application that displays the list of books returned from the Active Matrix service.
StockPrice example web application: A complete web application that uses General Interface to display Charts of stock prices.
StockPrice example web application: A General Interface Application with four parts—one publishes stock prices, and the other three components display the prices using different views and communicate using TIBCO PageBus.
StockPrice sample application: General Interface Application from Chapter 15 modified to load components asynchronously.
StockPrice sample application: General Interface Application from Chapter 15 modified to demonstrate instrumentation and optimization in General Interface applications.
© Copyright Pearson Education. All rights reserved.