Getting Started-2-Tier


Introducing Panther


About Panther

Panther is a framework for component-based development that gives you a powerful tool for leveraging a hybrid application development approach—for increased speed-to-market, flexibility, integration, portability, reuse and enhanced responsiveness to business needs. Key features include:

The Panther framework contains a series of Panther software components, packaged in the following editions, to help you build enterprise-wide and web-based applications using the database of your choice:


Solutions and Application Scalability

With Panther software, you can build small, departmental-sized applications using traditional client/server principles as well as larger, high-demand enterprise-wide applications that require a more sophisticated, three-tier client/server architecture. In addition, you can build database applications that run on an intranet or the Internet. Panther's editor and screen wizard provide a visual environment in which to create your application's interface and business logic.

Simple Applications Use a Two-Tier Solution

The two-tier client/server model typically separates data from the logic of an application. The database server stores the application data while the client screens contain the business and programming logic and process user input.

Figure 1 In two-tier architecture, each client has direct connection to the database server.

For small and departmental-sized applications, a two-tier solution can be the best alternative. With Panther software, you can build such applications and quickly test the interface and database connectivity. As the application requirements grow or the number of users grows, you can convert simple client/server processing to a more enhanced and enterprise-wide application.

Enterprise-wide Applications Use a Three-Tier Solution

Larger, enterprise-wide applications can be built quickly and easily with Panther. The interface you create is defined, in Panther terms, as the client. Essentially, the clients are processes which directly interact with the user. A client takes user input, packages it into a request for the middleware, and sends the request off. The middleware forwards the request to the Panther application server process which then implements that business logic. A client also receives replies from services and then presents the data to the user.

Figure 2 The client requests a service and the appropriate server responds.

In the three-tier or enhanced client/server model, the backend server is known as the resource manager, and is most often a database. The layer between client and backend server is the application server. This server handles the business logic of the application and doesn't need to reside at the client end. Hence, the client is responsible for user interactions, and the application server is responsible for providing business-level services and interacting with the resource manager as needed.

Figure 3 Three-tier clients have a connection to the database by way of the Panther application server.

Three-tier solutions address the needs of large-database users supporting many access points, usually in an open systems, client/server computing environment. Such transaction-processing applications are characterized by:

The central component of a three-tier system is the middleware that manages communication among the components. Panther provides the tools you need to design and define the services that enable a transaction processing system to function in accordance with the application's requirements.

Web Applications

Your application can be deployed on the Internet or on an intranet. In three-tier applications, the web application server acts as a Panther client, submitting service requests for any data to the application server. In two-tier applications, the web application server has a direct connection to the database.

Figure 4 In Panther web applications, the web application server generates HTML for your web client screens.


Product Components

Panther is a framework providing you with everything you need for building n-tier client/server applications:


Visual Object Development

The Panther development environment lets you build, test, and debug your application without having to recompile, relink, or leave the development workspace.

Figure 5 The editor workspace in Panther.

Editor

The editor is a powerful and fully graphical environment for creating and refining screens, reports, and service components. It lets you build client/server and distributed applications simply by dragging and dropping application objects onto Panther screens.

For information on accessing and using the editor, refer to Chapter E, "Editor Basics," in Using the Editors.

Screen Wizard Development

The screen wizard guides you through the process of building client screens for two-tier and three-tier applications which incorporate database tables and columns you import from your database. With the JetNet middleware adapter, the screen wizard can also build the corresponding service components.

Complex database-oriented screens with full master-detail-subdetail capabilities are easy to build and can be used immediately—because all the background processing needed to manage complex database transactions is built-in. The screens can be used as-is, or serve as a basis for further screen development.

For information on using the screen wizard, refer to Chapter 4, "Screen Wizard," in Using the Editors.

Repository

Panther's visual object repository with multi-level inheritance provides an excellent single point of control over the data elements imported from your database and objects in a large application. A repository is a development tool that helps you establish a controlled environment and simplifies application maintenance. In a repository, you can create, store, and gain access to collections of refined and reusable application objects, each equipped with a discrete set of display and behavioral attributes called properties.

When you build client screens and service components from repository objects, you are provided with a comprehensive inheritance mechanism. Panther automatically sets up inheritance links between the objects you use. Changes to the repository entries are automatically reflected in screens and service components. Alternatively, inheritance can be overridden on a property-by-property basis.

For more information, refer to Chapter 11, "Creating and Using a Repository," in Application Development Guide.

Menu Bar Editor

Panther's integrated menu bar editor lets you create menus (with pulldowns and submenus) which can be attached to your screens as menu bars and/or toolbars. Pulldown menus and their submenus can be nested as deep as you wish. You can associate menu bars with specific screens or widgets. You can also install a menu bar as the application-wide default to appear when no other menu bar has been specified. Menus can also be invoked as popups (by using the right mouse button) from a screen or field. In addition, Panther's library functions allow you to change a menu bar dynamically at runtime.

For more information, refer to Chapter 25, "Menu Bar Editor," in Using the Editors.

Styles Editor

A style is a collection of properties that can be applied to a widget or menu item. The transaction manager determines, based on the current transaction, what makes the most sense and what style to apply to application objects. As a user runs your application, the appearance and behavior changes can provide visual cues, such as graying or ungraying a push button, to indicate a field's protection or availability. For the most part, styles can eliminate the need for you to code such property changes. The styles editor lets you fully customize styles that are automatically applied as needed.

For more information, refer to Chapter 23, "Styles Editor," in Using the Editors.

JIF Editor

JetNet and Oracle Tuxedo applications use a JIF, or interface file, to act as the central facility for service and queue information used in enhanced client/server processing. The JIF editor lets you define the behavior of your application's services. It provides an environment for maintaining consistency between services and their invocation by clients. Via the JIF editor, you can group services for easier assignment to server instances and better manage your application. Features of the JIF editor also include automatic generation of service and service call invocation code.

For Oracle Tuxedo applications, the JIF editor also helps you define Oracle Tuxedo queues for use with enqueue and dequeue operations.

For more information, refer to Chapter 24, "JIF Editor," in Using the Editors.

Debugger

Panther's built-in debugger lets you visually step through events and scripts, while setting breakpoints and examining variables. The debugger is linked to the screen editor so you can easily switch between editing, testing, and debugging sessions. The debugger is available both on the client and on application servers, providing full three-tier debugging capabilities.

For more information, refer to Chapter 39, "Using the Debugger," in Application Development Guide.


Development Tools

The Panther development environment is equipped with numerous utilities and built-in capabilities to help eliminate or minimize tedious maintenance tasks. Most of what you need is completely accessible from within the editor environment. You can:

Source Control Support

To ensure that all members of your development team have access to the same information and sets of standards, you want to allow multi-user access with assurances that write-access to files is controlled and monitored. The editor provides an interface to your source code management system, specifically SCCS; PVCS and those systems supporting MSSCCI, to help you maintain libraries and repositories.

In a distributed development environment, you can set up source control archives which can be accessed remotely; for example, you can use UNIX's SCCS to archive files which are accessed from a Windows client.

In addition, if you do not use or have a source code management system, the editor provides a default warning system for controlling concurrent access to shared application objects during the development process.

For more information about implementing configuration management, refer to Chapter 10, "Accessing Libraries," in Application Development Guide.

Programming Interfaces

With Panther, you have a choice of programming options in Panther software components. You can use JPL (Panther's scripting language with a C-like syntax), Java, or C to add programming logic to your screens, service components, and reports.

JPL is a powerful scripting language that provides a procedural component to Panther's event-driven environment. You can write JPL directly in the editor environment using your preferred text editor.

In addition to the built-in JPL functions, you can invoke Panther C library functions and your custom C functions from JPL procedures. Under Windows, you can also make calls to DLLs directly from your JPL code.

For more information, refer to Chapter 2, "JPL Command Reference," and Chapter 5, "Library Functions," in Programming Guide.

All Panther objects and their properties can be accessed and modified programmatically through JPL, C, or Java. With the properties API, you can identify any application object, including the application itself, and get or set its properties at runtime.

For a list of all Panther properties, refer to Chapter 1, "Runtime Properties," in Quick Reference.

Programmers who are skilled in Java will find they can write application business logic in Java regardless of deployment environment. Panther provides a complete Java-based object framework and class factory as well as access to many Panther specific methods for interacting with an application.

For more information, refer to Chapter 21, "Java Event Handlers and Objects," in Application Development Guide.

Built-in SQL Database

JDB is a fully integrated, single-user SQL database—a powerful prototyping tool that lets you test and refine multi-user database applications without the need for an external database. Use it on your servers, or use on your clients for local storage. If you have not chosen the database engine for your application or the production database is not immediately available, you can use JDB. Development can proceed while work continues on creating a production database.

For more information, start with Chapter 1, "Introduction to JDB," in JDB SQL Reference.

Database Connectivity

From within the editor you can connect to your database and quickly begin developing database applications. You can import database table definitions into your application's repository at the outset of development—and then again whenever the database schema changes. If your database engine supports views and synonyms, you can import those as well.

Panther's transaction manager can automatically generate SQL statements thereby making your application database-independent. However, you can also write your own SQL. Panther provides the DBMS statements that let you take advantage of your database's unique features, such as executing stored procedures.

For more information, refer to Chapter 11, "DBMS Statements and Commands," in Programming Guide.


Behind the Screens

The most powerful and useful tools in Panther are those that can't be seen. These runtime features make developing an application, be it two-tier or three-tier, easy and quick.

Transaction Manager

The transaction manager simplifies the process of building database applications by letting you invoke database operations and apply transaction-specific control attributes—without coding.

Figure 6 Application built for three-tier architecture with the screen wizard takes advantage of the transaction manager to generate service requests.

The transaction manager processes high-level commands related to operations requested by the end-user. It receives such requests—like view, save, and new—directly from a client, and from a server (in a three-tier application).

The request is sent to a database-specific transaction model, optimized for your target database, and a common transaction model. Typically, the models cause Panther to generate and execute the appropriate SQL statements, pass that to the database and then carry the results, by way of the application server in three-tier processing, back to the client, or user.

For more information on the transaction manager, its commands, and how to maximize its use, start with Chapter 31, "Building a Transaction Manager Screen," in Application Development Guide.

Middleware Support

In a three-tier architecture, the communication between clients and servers across a network is managed by middleware software. The middleware adapter is the mediator between client and middleware and between server and middleware in Panther three-tier products.

JetNet

Panther's built-in middleware, JetNet, supports:

The JetNet manager (jetman) provides you with the ability to configure, activate, and maintain Panther applications in three-tier architecture. The JetNet manager provides an easy-to-use interface for defining how your application will run—the structure of your application servers and the communication between the middleware and JetNet.

In addition, the JetNet manager lets you start and stop your application or individual servers running within the application. It gives you a view into your application—showing you what clients and services are connected and what they are doing.

Additional command-line utilities are provided:

Oracle Tuxedo

Panther's Oracle Tuxedo version is completely compatible with Oracle Tuxedo and supports its features. In addition to the JetNet features, the Oracle Tuxedo version supports:

COM/MTS

In Windows 32 bit applications, you can build COM components in the Panther editor and deploy those components using COM, COM+, DCOM, or MTS. Those COM components can be used in a Panther application or be called from other COM-based applications.

Using MTS to deploy your components allows you to take advantage of the database connection pooling and transactional support that are built into MTS.

For more information on building and deploying Panther COM components, start with Chapter 1, "Overview," in COM/MTS Guide.

IBM WebSphere

For IBM WebSphere applications, you can build EJB components in the Panther editor and deploy them using WebSphere Application Server.

For more information on building and deploying Enterprise JavaBeans in Panther, start with Chapter 1, "Overview," in Panther for IBM WebSphere Developer's Studio.