|
Comments
Did you read today's front page stories & breaking news?
SYS-CON.TV
|
Product Reviews PowerJ
PowerJ
By: Jeff Winchell
Jul. 1, 1997 12:00 AM
Launching a technology into stardom begins with an enormous creative effort. The combined technical and marketing forces pouring out of Java tool vendors is as impressive as the fires fueling the giant first stage of a Saturn rocket. But the first stage burns out quickly, followed by a less flashy, more sustained effort. With 75 percent of developers programming database applications, Java IDEs must tap this fuel to reach a long-lasting orbit. Powersoft's high-end RAD tools, PowerBuilder and Optima++, have won numerous awards serving the needs of database application developers. So it's no surprise that their first Java development tool, PowerJ, goes far beyond first generation Java IDEs to provide a visual, practical, database-oriented Java development environment. This article reviews a surprisingly polished public beta of PowerJ, available for download at http://www.powersoft.com/.
Internet Database Connectivity Architecture Since an untrusted Java applet cannot directly access files on its own computer, or any other non-Web server machine, data access must go through the Web server's computer. DBMS APIs are, for now, almost exclusively in non-Java languages, so the applet must communicate in Java to a Java application running on the Web server. Since Java applications can use non-Java languages, they can make calls to DBMS APIs written in C, C++, etc. Java's built-in multi-threading simplifies the task of vendors writing Java applications to service concurrent database connections from multiple Java applet clients. All of the above untrusted applet restrictions are lifted if you write a Java application or deploy for one of the rare browsers (e.g., HotJava) that runs trusted applets. Since time to market is critical for Java IDE vendors, their focus is serving the needs of untrusted applets. In time, the Java database market will grow and you will see additional tools optimized for applications and trusted applets. Maintainability is another key driving force to Java database architectures. Because there is no one or few vendors dominating the market for Java database products, vendors must rely on the interoperability of various pieces to the Java database application puzzle. Making sure front ends, middleware and back ends all work together in a marketplace driven by extremely rapid product changes is a challenge solvable only by frequent patches and controlled updating procedures. You can simplify your maintenance hurdles by limiting the amount of software that runs on client computers. The trade-off is performance. A typical CPU running in a server or client has a performance of about 100-500 MIPs. Clearly, 100-client CPUs have more combined power than a single 10 CPU server. By placing nearly all of the processing on the server, you are potentially wasting client resources and creating a bottleneck on the server. Consider the anticipated client and server(s) processing power balance as a factor in your overall architecture. The wide range of transmission speeds is also a major performance factor. A T1 connection can move 100 times the data of a 14.4 modem. However, the latency of the Internet and lowered performance expectations of Internet users can simplify your performance tuning decisions.
PowerJ - Multiple Option Threat
PowerJ RAD = JDBC PowerJ includes a proprietary solution, jdbcConnect, for direct access to Sybase SQL Server, Replication Server and Sybase IQ. Direct Sybase SQL Anywhere support is not available yet, but is a high priority. Through additional layers and gateways, you can communicate with other DBMS's. jdbcConnect is a java application that runs on your Web server and supports a number of UNIX and Win32 operating systems. jdbcConnect does not support the JDK 1.1, but PowerJ includes classes that work with JDK 1.02 that you activate via a switch. This works fine as long as you don't have an application that must support both jdbcConnect and a JDK 1.1-based driver. One other noteworthy point is jdbcConnect's extensive support for high security database connections. PowerJ provides direct support for standard JDBC drivers. All-Java drivers exist for CA-Ingres, DB2, Informix, InterBase, Microsoft SQL Server, mSQL, Oracle, Postgres95, Progress and SAS. There is a notable lack of non-ODBC drivers for the Jet Engine, Borland Database Engine and FoxPro engines. For more information on JDBC driver availability, see http://splash.javasoft.com/jdbc/jdbc.drivers.html. Alternatively, you can use the JDBC-ODBC bridge downloadable from JavaSoft. PowerJ supports JDBC-ODBC version 1.21, which means JDK 1.1, the Sun Java Virtual Machine (JVM), no debugging, no applets and client-side ODBC drivers. This means you will have to contend with ODBC driver configuration, possibly database client code, OS compatibility and version control on your clients. ODBC drivers are still exclusively non-Java code, so Java applications must use native methods (i.e., no untrusted applets). JVMs in Netscape, Microsoft and Asymetrix implement native methods differently from Sun. The JDBC-ODBC bridge has versions for Sun and Asymetrix's JVM, but not Microsoft's. Sun hasn't been as aggressive in supporting a debugging JVM, so debugging in PowerJ requires the Microsoft JVM. Given the rapid change in the Internet industry, one can hope these restrictions will rapidly disappear. One final note: Until standard browsers support JDK 1.1, all JDBC solutions will require client downloading of JDBC classes increasing the initial time to load your JDBC-based application.
ActiveX and Java Beans Since ActiveX controls reside on the Web page, not in the Java program, PowerJ generates VBScript glue code to communicate between your Java program and the ActiveX control. This will probably restrict Java applet/ActiveX solutions to Microsoft's Internet Explorer.
Server-Side Java with NetImpact Dynamo, ISAPI, NSAPI and CGI Powersoft's NetImpact Dynamo Web server is yet another way to reach databases from PowerJ. NetImpact Dynamo is primarily a JavaScript-based tool. However, using PowerJ's DBConnection class, you can write Java servlets to tap into NetImpact Dynamo's connection object. PowerJ's Document class lets you output HTML to browser clients connecting to NetImpact Dynamo.
Data Entry Application Support PowerJ's form design interface has a tabbed array including six data-aware JavaBean controls (edit box, label, combo box, list box, radio button and check box). The list box can also handle sophisticated bound lookup table tasks. Three common components PowerJ omits are grids, masked edit boxes and record navigators. As vendors of Java Bean components sprout, you can expect many more database controls for your PowerJ applications. PowerJ also has three additional controls to set up database connections, cursor definitions and cursor navigation. It was nice to see a full set of navigation methods that overcame the JDBC's deficiencies in this area. While PowerJ doesn't display live data in the data aware controls at design time, it does provide a useful facility to test basic connection and cursor definition. Especially nice is the visual SQL editor to help you define the cursor and the test grid to view the resultant data. You also can use the cursor component to run stored procedures. The database components include an auto-commit transaction setting, but surprisingly there is no transaction isolation level setting. In the current beta, PowerJ requires a little bit of code (via bound SQL parameters) to set up master-detail views. You have several options to edit the properties and events of a control. A tabbed dialog window helps novices find the right property. Experienced users may prefer the Visual Basic-like property editor window. For visual layout properties, PowerJ provides a number of alignment tools, but there is no control tab order tool. There is also a class browser, an object browser and project file viewer. Finally, PowerJ's target viewer lets you set options like debug vs. release build and JVM and interpreter choices from Sun and Microsoft. If you prefer to work with code, you can edit PowerJ's edited code, but it is not a two way editing tool.
Installation Installing applications built with PowerJ is uncertain at this time since PowerJ (as reviewed here) is still in beta and you have so many options for database connectivity and DBMS engines. You have the potential to create PowerJ applications with the thinnest of clients and minimal configuration. You can also create the most complicated multi-tier applications filled with gateways, barely shipping protocol bridges and client-side software driving you straight to the client/server funny farm.
Learning PowerJ Wizards are a common teaching method in RAD development tools. A data entry form wizard was not present in this reviewed beta, but should be included by the time you read this. This form wizard will handle both simple data views and master-detail views. One exception to their otherwise good documentation is their initial tutorial to drag and drop programming. I found it difficult to understand why I was clicking and typing in so many different places, only to produce a short line or two of code. With further practice and additional reading, I was able to almost understand the point to their drag and drop programming interface, but I think it needs more work. Powersoft designed this to help developers learn Java, but it is far from the intuitive interface of Visual Café's interaction wizard.
Integration Another example of Powersoft's vision is the realization that Microsoft's FrontPage is an important Web-site development tool. You can configure PowerJ to use FrontPage as the HTML editor. Front Page recognizes PowerJ's control files. You can start your Web site in either FrontPage or PowerJ by following the simple directions in PowerJ's documentation.
Missing Pieces There also are no tools for creating and modifying databases, database rules, security, etc. While a GUI like Visual dBASE has, which supports multiple DBMSs would be great, even a command line interface to SQL would be acceptable. Database dictionary integration like PowerBuilder's or Visual FoxPro's would also be welcome. For now, you can expect to replicate business rules in client-side code as well as in the DBMS.
Summary Reader Feedback: Page 1 of 1
Latest Cloud Developer Stories
Subscribe to the World's Most Powerful Newsletters
Subscribe to Our Rss Feeds & Get Your SYS-CON News Live!
|
SYS-CON Featured Whitepapers
Most Read This Week
Breaking Cloud Computing News
|
|||||||||||||||||||||||||||||||||||||||||||||||||