BLUESTONE SOFTWARE, INC.
Sapphire/Web 3.5: Frequently Asked Questions:

- Sapphire/Web Overview Questions
- World Wide Web Background
- Building Applications for the Web
- Sapphire/Web Application Development
- Sapphire/Web Architecture
Click below to install Sapphire/Web 3.0 for SGI IRIX

Sapphire/Web Overview Questions


I. Sapphire/Web Overview Questions

What is Sapphire/Web?

For developers creating network computing applications, Sapphire/Web is the Web-and-Java-to-database development tool that makes it easy to create high-performance Internet/Intranet applications. Unlike other tools that deliver server-side only solutions and technology look-in, Sapphire/Web offers Interactive Java client and server-side business logic in an open approach giving you the choice of Java, ActiveX, and the security and scalability to meet the needs of Enterprise-Wide and World-Wide applications.

Why Develop Applications using Web Technology?

There are a number of key reasons for developing applications using Web technology:


II. World Wide Web Background

What is the World Wide Web?

You can think of the World Wide Web as a type of protocol and a set of services available on the Internet. It was originally developed at CERN, a government funded research organization in France for physics research. The purpose was to allow an easy way for researchers around the world to post and share information. In 1993, the first graphical browser was developed, called Mosaic, at the NCSA at the University of Illinois.

Originally, the web centered around three major components. First, the Browser is what runs on a desktop computer that makes it easy to see Web-based information. The Mosaic browser is available in the public domain for free on most computing platforms. Since then, browsers from Netscape, Microsoft, Spyglass and dozens of others have hit the market. Second is HTML, or Hypertext Markup Language. This is a defined way of marking the parts of a document so that the browsers can know how to display the information. An example is to mark a part of text as a Heading, then the browser will display that part in a larger, bold font. The third main part of the Web is the http (hypertext transport protocol) server. This is where the HTML documents reside (as well as the web programs--how applications are run using Web technology--discussed in Section III.).

One of the interesting things about HTML documents is that they can easily include references to other HTML documents that can be on completely different http servers. This means a user can click on an item in a document, and be immediately transferred to another document in another part of the world. These cross references have given rise to the term the World Wide Web.

More recently powerful client languages have been added to browsers, including Java, JavaScript, ActiveX, VBScript and VRML. These provide the ability to do client-side processing, offering tremendous performance functionality. For example, calculators running entirely on the client can be put in a Web page.

What is network computing?

Network computing is the new model for building and developing applications. This has been enabled by Web and Java technology to allow for multi-tier computing - with Thin, Interactive Clients built in Java or ActiveX working with high-performance, scalable Enterprise-Wide and World-Wide servers containing business logic and enterprise data.

Network Computing is spawning a new generation of applications, servers and clients. These include the latest browsers from Netscape and Microsoft as well as Java based Network Computers from companies like Sun, IBM and Oracle.

Is the World Wide Web and Network Computing technology useful inside organizations?

Estimates are that there are more than five times as many internal Web Servers as external World Wide Web Servers. For example, many companies have hundreds of internal web servers with just a few external Web servers. The World Wide Web technology is not just for the public domain and Internet.

HTML, Java, ActiveX, and scripting languages have proven to be a convenient way to distribute information internally. There are several reasons for this:

Internal Web Servers, or intranets, are being used for a variety of information sharing and distribution reasons today: Today, more sites are deploying interactive applications with "live" data-order entry, customer information systems, and other corporate and departmental applications that had been deployed in other client/server architectures because of the power, and ease of use and deployment.

Building Applications for the Web


III. Building Applications for the Web

Can you deploy real applications on the Web?

Yes. While most of today's use of Web technology is the distribution of static documents, it is possible to have live applications run across the Web. Just like any typical application deployed today on terminals, PCs or workstations--Web-based applications interact with the user and can query, insert, update and process information.

In fact, Web application development has become quite popular. There are increasing numbers of catalogs available over the network that allow users to browse their information, and enter orders. Other examples are the Federal Express and UPS package tracking applications made available on the World Wide Web. Bluestone Software has even put our support database on-line for maintenance customers to access. All of these examples demonstrate how organizations are reaching out to customers and partners by utilizing the Web.

How do applications run on the Web?

Web-based applications are multi-tiered. The Web browser (such as Netscape or Microsoft Internet Explorer) displays the graphical user interface. The user interacts with HTML, Java, ActiveX or Scripted forms, templates and documents--entering information, looking at returned data, etc.

The browser is communicating with the http server, where the document is stored. There is a CGI (Common Gateway Interface) or API process running at the server. The server application allows processing of the data and choices entered by the user. A server application can do any normal application processing--such as calculations, database queries and updates, or communicate with other processes on the network. The server application can then determine what the next form, template or document is displayed to the user.

Can you access databases from the Web?

Yes. Server applications are like any program, and can access databases. This is typically done using the native database vendor's library, such as Oracle SQLnet. ODBC is another popular choice for accessing a wide range of databases with JDBC becoming production ready in 1997.

How are Java, ActiveX, JavaScript & VBScript used in Web applications?

These technologies are the foundation of the Network Computing era - characterized by network centric data and applications. They allow for deploying executable content in real-time for highly interactive Web applications.

These technologies have become a standard part of browsers, and are being used to deliver robust client/server applications with high performance. An example might be downloading a row set of data from the database into a Java applet for further investigation--perhaps a spreadsheet or graph. These applications would not be feasible with an only server-sided approach.

Can Web technology be used to deploy internal applications?

Yes. In fact, this has become the largest use of Web technology. As mentioned above, there are more internal Web servers in use today than on the Web. The inherent multi-tiered client/server architecture of Web applications, cross platform deployment, along with the simplicity of development and use is attracting a lot of attention in the application development community.

Sapphire/Web Application Development


IV. Sapphire/Web Application Development

What is the basic development process with Sapphire/Web?

Sapphire/Web is designed to work in a manner similar to other application builders for Windows and Motif. Here are the simple steps:

1. Create User Interface. Create your HTML, Java, ActiveX or Script Forms (for data input and request) and Templates (that will hold data returned to the end-user from your application). These can be created in your favorite HTML Authoring tool like Microsoft FrontPage or Netscape Gold or a Java-development tool like Visual J++ or any of the emerging set of tools for creating these documents. Any tool may be fully integrated into Sapphire/Web.

2. Create Application Logic. Browse, reuse and create your application objects from Sapphire/Web. These can be:

3. Bind User Interface Objects to Application Objects. Select the appropriate object, and Sapphire/Web will bring up a Bind Editor with appropriate Arguments, Results and special editors. Select via context sensitive option menus or drag and drop from your GUI documents onto the Bind Editor. This binds GUI elements such as a text input field or an option menu in HTML, Java or ActiveX to arguments; and results returning from your object to other GUI elements such as an ordered list, table or Java applet or ActiveX component. Sapphire/Web automatically populates the returned data into your GUI templates.

4. Add conditional processing code, or modify the default methods of populating data.

5. Generate Server Code in pure C or C++ and client code in Java, ActiveX or Script. This generates a server and client program for immediate use. It is that simple--without writing a single line of code. Sapphire/Web also provides for testing and loading of the application program in the specified http server.

How do I create my forms, templates and documents?

Sapphire/Web is an open tool that tightly integrates with any HTML, Java, or ActiveX authoring tool--whether you create files from scratch with an editor, use an HTML authoring tool like FrontPage, HoTMetaL or SGI's WebAuthor, or use a word processing to HTML generator like ones available from Frame, Interleaf, Microsoft or WordPerfect. Sapphire/Web's Client Objects are also integrated with Java and ActiveX tools like Visual J++, Visual Cafe, and Visual C++.

What types of back-end Objects does Sapphire/Web support?

Sapphire/Web supports the following object types:

How do I create my database, SQL and application logic?

You can create it the same way you do today if you would like, or you can use the editors or wizards within Sapphire/Web to create these objects within the tool.

Sapphire/Web's open architecture allows reuse of existing code. For example, stored procedures may already exist for implementing current client/server applications. Sapphire/Web can fully reuse these stored procedures without any changes. Sapphire/Web also supports the ability to register pre-existing functions in the tool. This makes it simple to put a Web interface on existing applications since most applications are already modularized in functions, or can be wrapped as function calls.

Sapphire/Web includes an SQL Wizard for generating SQL logic automatically. This includes the ability to do joins.

Finally, Sapphire/Web allows developers to add their own conditional processing to the graphical binding process between user interface and application objects. For example, developers can do some processing of data before sending a request to the database, or do a sum of results returned from the database before returning the sum result to the user.

Does Sapphire/Web work with other tools?

Yes. Sapphire/Web's open architecture allows for integration with leading tools--providing a professional development environment. This includes leading software development environments such as Visual C++, Visual J++, SoftBench, SPARCWorks, Java Workshop, Cafe and SGI's development kit. In addition, it can be used on larger projects in conjunction with products like PVCS, Visual SourceSafe, RCS, SCCS, or ClearCase.

When used in C++ mode, it can be integrated with various class libraries, such as Rogue Wave's Tools.h++, and advanced C++ tools such as Look!

One of the most important features of Sapphire/Web is that it allows you to use the database vendor's native SQL. This means you can stay within the standard SQL and get portability, or you can take full advantage of the features of the specific database vendor of your choice--such as PL/SQL for Oracle, and TransactSQL for Sybase.

How does Sapphire/Web compare with scripting languages for Web development?

There are several major distinctions. First, Sapphire/Web is a development tool that helps manage your development effort from prototype through maintenance, while many of the scripting languages are simply languages. This provides for higher productivity and maintainability. Second, Sapphire/Web produces pure C and C++ on the server--providing power, performance and portability advantages over scripting languages that run in an interpretive mode. Third, the visual programming environment allows for increased productivity, while most scripting languages are not visual. Finally, Sapphire/Web allows developers to break a problem down into manageable, viewable components rather than developing very large scripts or trying to manage multiple scripts and HTML documents by hand.

Does Sapphire/Web allow scripting on the Client?

Yes. Sapphire/Web's Client Objects are fully scriptable in VBScript or JavaScript. There are even VBScript and JavaScript database frameworlds available. In addition there are pre-built templates for data validation in these scripting languages for client-side field validation.

How does Sapphire/Web compare to other Client/Server development tools?

Sapphire/Web is similar to leading client/server development tools like PowerBuilder, SQL/Windows and Bluestone Software's own db-UIM/X in many ways. For example, it allows you to develop a complete client/server application without having to worry about the underlying network infrastructure, and the visual programming environment improves productivity. It is similar to db-UIM/X in that it uses standard C and C++ on the server side, and supports the native SQL implementations of the database vendors (a different strategy than PowerBuilder).

The underlying architecture of Web-based applications also brings about a number of differences. First is that user interfaces are much easier to build for developers, and much easier to use. Second, applications are immediately available across multiple user interface platforms such as Windows, Motif, Mac and character terminals. With extensions to HTML such as Frames, Tables, Java, JavaScript, ActiveX, and VRML the GUI has become very robust.

Another advantage of Web application development is the automatic partitioning of applications into a three-tier model. This avoids the "fat client" syndrome that has created problems in some large scale client/server implementations. With Sapphire/Web's Client Objects developers can partition the amount of the application that makes sense.

What are Sapphire/Web Client Objects?

Sapphire/Web Client Objects provide the interactive database power for Network Computing. Sapphire/Web provides a completely integrated client server development environment. This includes support for creating Java to database and ActiveX to database applications. Client Frameworks are provided in Java, ActiveX, JavaScript and VBScript. Each framework is scriptable (customizable), as well as extensible. This means you can integrate classes and applets into the framework to fully data-enable them with query, update, delete, insert and login. Please refer to the Sapphire/Web Client Objects documentation for complete details.

What is the Sapphire/Web Object Gallery

The Sapphire/Web Object Gallery is a user definable set of object palettes. These palettes hold any type of object - such as templates, code, database objects, Java applets and classes - and can be defined quickly and easily by the developer. They help in object reuse and setting corporate development standards.

Sapphire/Web Architecture


V. Sapphire/Web Architecture

Does Sapphire/Web use a 4GL, Scripting language, or other proprietary mechanism on the server side?

No. One of the primary advantages of Sapphire/Web is the openness of the architecture and development environment. Sapphire/Web generates pure C or C++ code, as well as allows developers to add in their own C, C++ or C callable functions. Sapphire/Web does not introduce another version of SQL or a 4GL into the market either--it supports the native database calls of Sybase, Oracle, Informix, DB2 and Microsoft SQL Server.

Note that Sapphire/Web Client Objects are fully scriptable on the Client.

What is the Sapphire/Web No Run-Time Application Server?

Sapphire/Web offers a wide choice of code generation options. One of the most powerful is the Application Server. This generates your application as a high performance, compiled server process. There can be as many Application Servers as you choose, running across as many systems as you choose - for true scalability on the server-side.

Since Sapphire/Web Application Servers are your applications, there is No Run-Time. These are open, completely portable applications that can work with NSAPI, ISAPI and even CGI. You can deploy your application however you need to without any royalties or money owed to Bluestone Software. This is unlike other vendors proprietary Application Servers - which act as as interpreted run-time environment only available on a few platforms.

What is the Sapphire/Web Gateway?

Bluestone Software developed the Sapphire/Web Gateway based on the CORBA standards to facilitate a transparent network architecture to our tools. This is not meant to be a complete implementation (for example it does not include IDL) and implements only specific functions needed for communicating to databases. The Sapphire/Web Gateway can run in conjunction with a general purpose Gateway, such as Orbix, or DSOM.

One of the advantages of the Gateway is holding connections open to the database. This can increase performance of Web-based applications considerably.

There can be multiple Gateways running on the network, and they can run anywhere on the network. Clients talk to Gateways based on a seed number that can be set through a convenient resource setting. The NT version implements the Gateway as standard NT services and includes a graphical interface for managing distributed Gateways.

Do I need the Sapphire/Web Gateway?

No. The Sapphire/Web Gateway can be completely replaced with the native database vendor's network library, such as Oracle. Also, the Application Server architecture can serve the same purpose of high performance , persistent database connections.

In addition, Bluestone Software Professional Services will assist clients in completely integrating a specific middleware--such as a general purpose Gateway like Orbix or DSOM, or a transaction processing system like Tuxedo or Transarc's Encina.

Is your API public?

Yes. Bluestone Software has publicly documented our API layer. This can be used for hand coding Web applications in a much easier manner than can be done with using native database calls, or with scripting languages. It also ensures portability and openness for developers using Sapphire/Web's advanced features for increased productivity and functionality. Source code is also available to ensure portability.

What browsers and servers are supported by Sapphire/Web?

Generally, we support any generic browser and server, including the secure products on the market. Please refer to the Sapphire/Web Supported Configurations Information sheet for specific information.

Are the UNIX and Windows versions compatible?

Yes. You can take the project file from one platform to any other platform and regenerate. You may need to change configuration settings such as database and http server. Platform specific features such as OLE are of course not portable.

How does Sapphire/Web support large project development?

Sapphire/Web is designed from the bottom up to be a production level development tool. There are features throughout the tool that are very useful for large development teams.

The core feature of Sapphire/Web is its three-tier development architecture that has a generic object model for the front end GUI and back end application and database objects. This means that development can be segmented into the traditional three tiers of GUI, Application and Database. Since Sapphire/Web treats each of these tiers in a generic, networked object model, the tiers can be reused. For example, multiple developers can reuse a common SQL object or stored procedure in a variety of Web pages. Sapphire/Web not only facilitates this, but also provides a refresh option that will check to see if the database or application objects have changed from the original binding to the GUI objects to further ease maintenance of Web applications.

Second, Sapphire/Web has introduced the powerful Sapphire/Web Object Gallery - a visual repository for reusing objects of any kind.

The third key reason is Sapphire/Web's open architecture. One of the design concepts was to open Sapphire/Web so that developers could use other tools. You will find that Sapphire/Web not only works with any Web editor, browser or server, but also works with development tools such as code management systems (PVCS, Visual Source Safe, ClearCase, etc.), C and C++ debuggers and development environments like Visual C++, SoftBench and SPARCWorks. These can be tightly integrated, for example all of the open and save buttons in Sapphire/Web can be redirected to call the code management system of choice--forcing developers to check-in and check-out their code. In addition, you can debug Sapphire/Web generated applications with your C or C++ debugger for robust development.

Sapphire/Web can also be viewed as an Application Framework. Developers can add objects to the tools--from APIs, to custom population callbacks, to new GUI interfaces to custom objects. In addition, Sapphire/Web's ability to bind to native database SQL and Stored Procedures means that you can use existing production oriented tools for database modelling and SQL generation. Finally, the ability to bind to back-end executables and functions gives the ability to work with legacy code. In one example, a customer even used the function interface to bind to existing CORBA objects.

The internal structure of Sapphire/Web, called the Visual Object Linking Technology, is a well proven architecture and implementation. It has been used in the db-UIM/X product by thousands of developers to produce production level database client/server applications. This network database capability provides full options for handling database login and error reporting. The optional Sapphire Gateway can automatically hold connections to a database open for reuse, significantly improving performance.

Finally, Sapphire/Web produces clean, high performance, secure, portable C or C++ code on the server side, and provides Java, ActiveX and Scripting Client Objects. The ability to have client processing provides for large scale development without having server side bottlenecks. Sapphire/Web applications are ready for large scale deployment.

What server-side options does Sapphire/Web support?

Sapphire/Web generates high performance NSAPI, ISAPI, CGI, Fast CGI or Oracle Cartridges by a simple "Flip of a Switch". These options support a powerful, scalable Application Server. Application Servers can run across multiple systems providing easy scalability as well as security. In addition, the Application Servers are actually the compiled application built with Sapphire/Web. This provides much higher performance than interpreted or generic run-time oriented Application Servers.

Is there a run-time or deployment charge?

Absolutely not. The Application Servers generated by Sapphire/Web is your code, not a proprietary run-time engine with unknown cost.

How does Sapphire/Web support Oracle customers?

Sapphire/Web has been recognized by Oracle as "the leading web development tool," for a wide range of reasons. Of particular importance to Oracle customers are:

How does Sapphire/Web support Informix customers?

Sapphire/Web is part of the INformix Premier Partner Program and provides important features for Informix customers:

Persistent Database Connections

The Sapphire/Web Gateway and Application Server automatically holds open connections to the database. This solves one of the most common performance issues with Web to database applications. Reestablishing connections to a database can cause hundreds of milliseconds of delay and overhead.

The Sapphire/Web Gateway and Application Server automatically holds open a connection to the database for a specified period of time on the PC platform. This means that if a user hits a site and has the same access path to the database (true for most applications that do not require a log in--every user connects to the database as the same user), then the Sapphire/Web Gateway or Application Server automatically uses the existing connection. You can see this speed improvement by logging into our Web site at

http://webnt1.Bluestone Software.com/framedemo.html
The first database request that is made can take up to two seconds, while further requests are under one second response time. Compare this response time to other sample applications.

The Sapphire/Web Gateway also allows a wide variety of options for managing the connection to the database. For example there can be multiple gateways managing connections or each of the gateways can manage multiple connections. Using either the Netscape cookie mechanism or the Sapphire/Web provided mechanism to work on any browser, there is a means of holding state information at the client. This state information can be used to identify specific users and determine the appropriate connection already opened to the database. Of course, Sapphire/Web will shut down the connection automatically after a specified period of time.

Sapphire/Web also gives developers a way of holding state information with the new Sapphire State Server introduced in V2.0 of the PC version. This allows state information such as Sapphire/Web seed number to be held at the server level. Later versions of Sapphire/Web will give graphical mechanisms for controlling advanced state and database connection management.

Sapphire/Web Client Objects offer the highest performance capability since all data gets cached on the client. Note also that state is automatically held with Client Objects.

Finally, Sapphire/Web's Application Servers can hold session affinity automatically.

What Security Features Does Sapphire/Web have?

One of Sapphire/Web's strongest features is a wide variety of security mechanisms available to users.

Sapphire/Web Application Servers can run inside a firewall while the Web Server is outside the firewall. Since communications is on a socket level, this provides the same security as companies have for email and ftp.

Second, Sapphire/Web generates an executable program in machine code. This is much more secure than other approaches that imbed calls and even database login information within and HTML page or in a scripting language. By NOT having any human readable code resident on the Web server, Sapphire/Web has taken the most secure approach to Web applications.

Third, Sapphire/Web can work in secure Web server environments, such as shttp or ssl Web servers. Sapphire/Web applications can scale up to these servers without any changes to Sapphire/Web. There are a growing number of security alternatives being recommended around these Web servers, such as having an ssl Web server within a firewall running applications only accessible from ssl confirmed client browsers.

Fourth, Sapphire/Web supports secure state management of applications. Sapphire/Web supports the Netscape cookie approach. In addition, Sapphire/Web provides a vendor neutral API to embed state information within a Web page. This API provides a fully documented hook for using your own encryption routine (Sapphire/Web does not provide one within the product due to export restrictions).

Fifth, Sapphire/Web is extensible. This means that you can add your own security mechanism to your applications easily. Whether it is Open Market's Secure-Link, CyberCash or SET, each of these APIs can be added to Sapphire/Web easily. They can also be tightly integrated by defining default population routines for them, such as the Open Market Secure Link.

Sixth, Sapphire/Web Client Objects provides a secure login capability from the client side.

Finally, Sapphire/Web customers are using the tool to create a variety of applications requiring security today--such as management reporting, electronic commerce and even on-line banking. Sapphire/Web's open, robust architecture allows these customers to meet their specific security requirements in a cost efficient manner.

How does Sapphire/Web support mainframe access?

There are a variety of mechanisms that have been developed over the years to allow access to mainframes--and all are supported by Sapphire/Web. These range from screen scraper approaches where existing 3270 screens are replaced by a new GUI, to program-to-program communications to database access through an intermediate filter.

In the case of 3270 Applications, Sapphire/Web allows integration of 3270 Data Stream or HLLAPI via the function interface. This allows these APIs to be tightly integrated with Sapphire/Web via a visual interface with some set up, or to allow for calls to be made directly to the API.

For more advanced applications where program-to-program communications is required, Sapphire/Web again provides excellent support either through the function interface, or by including the specific libraries into the Sapphire/Web API. The most frequent examples are LU6.2 or the MQSeries for providing a message queuing architecture. Many companies have built their own set of APIs for their own environment that can also be built into Sapphire/Web's open architecture.

In those cases where access to the database is required (and permitted), there are several choices. Sapphire/Web supports native DB2 access without ODBC overhead. Another alternative is to use one of the large database vendors (Informix, Oracle, Sybase) gateways. They each support multiple mechanisms to access mainframe databases, including DRDA. DRDA is IBM's Distributed Relational Database Architecture--the standard for providing client/server connectivity among IBM relational database management systems (RDBMSs).

For example, from the Informix description on their Web page (the others have similar capabilities): "INFORMIX-Gateway with DRDA is completely transparent to end users. It acts as a translator, providing read-and-write access to IBM data from UNIX or Windows-based applications. Conceptually, the gateway appears as an Informix database server to the application and as a DRDA client application to an IBM database. Because INFORMIX-Gateway with DRDA appears to users as an Informix database server, Informix or third-party tools that can access an Informix database can now access IBM's DB2, DB2/VM, or DB2/400 SQL databases, even without an Informix server."

For Sapphire/Web, this provides mainframe data access with the full power normally associated with Sapphire/Web's support of native database connectivity. For more information, please see the specific database vendor's Web pages:

Informix: http://www.informix.com/informix/products/techbrfs/tbindx.htm
Oracle: http://www.oracle.com/products/gateways/
Sybase: http://www.sybase.com/products/entcon/dirconwp.html

Finally, Sapphire/Web supports ODBC connections to the mainframe. For more information on the ODBC drivers for mainframe access, please refer to:

 Intersolv: http://www.intersolv.com/solution/dw_odbc.htm
 


How can I find out more?

Contact Bluestone Software:
Web Address: http://www.bluestone.com/
e-mail Address: info@bluestone.com
Postal Address: 1000 Briggs Road Mt. Laurel, NJ 08054
Phone: 609-727-4600
Fax: 609-778-8125