Sapphire/Web from Bluestone
Frequently Asked Questions


I. Sapphire/Web Overview Questions

What is Sapphire/Web?

Sapphire/Web is a powerful Client/Server Application Development Tool designed specifically for creating inter- and intra-enterprise applications running on the World Wide Web. Sapphire/Web creates applications that use HTML as the cross platform user interface language, running with Oracle, Sybase and Informix databases, as well as application code. Sapphire/Web has a powerful visual programming paradigm that drastically reduces the coding effort normally associated with developing Web 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.

There are really three main parts to the Web. 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, Spry 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 CGI 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.

How fast is the World Wide Web growing?

In January 1993 there were about 50 WWW Servers in the world. In February 1995, there were over 30,000 external WWW Servers.

Is the World Wide Web technology useful inside organizations?

Estimates are that there could be more than twice as many internal Web Servers as external World Wide Web Servers. For example, in early 1995 Silicon Graphics had less than 10 external Web Servers, while having over 75 internal Web Servers. The World Wide Web technology is not just for the public domain and Internet.

HTML has proven to be a convenient way to distribute information internally. There are several reasons for this:

Internal Web Servers are being used for a variety of information sharing and distribution reasons today:

In the future, more sites will be deploying interactive applications with "live" data - order entry, customer information systems, and other corporate and departmental applications that today are being deployed in other client/server architectures because of the power and ease of use and deployment.

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 documents, it is possible to have live applications run across the Web. Just like any typical application deployed today on terminals, PC's or workstations - Web based applications interact with the user and can query, insert, update and process information.

In fact, Web application development is beginning to become quite popular. There are several catalogs available over the network that allow users to browse their information, and enter orders. Another example is Federal Express' package tracking application made available on the World Wide Web. Bluestone 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, Mosaic, Spry) displays the graphical user interface. The user interacts with HTML forms, templates and documents - entering information, looking at returned data, etc.

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

HTML forms are typically data input forms filled out by the user (enter your name and address). HTML templates are typically base HTML documents that have data put into them by the CGI process before they are sent to the user. HTML documents refer to both of the above, as well as plain documents that do not allow for processing, but only carry links to other HTML documents, forms and templates.

How are applications developed on the Web?

A CGI is written to work with HTML documents, forms and templates. The CGI process is then put into the http server, and is immediately available.

CGI is a standard mechanism, and can be done from a variety of languages. The most popular languages used today are C or C++, as well as scripting languages such as PERL. There is a growing library of scripts and add-on APIs to do common functions. Sapphire/Web is a full function client/server application development tool for automatically building and installing Web applications.

Can you access databases from the Web?

Yes. CGI's are like any program, and can access databases. C or C++ progams can use the database vendor's C libraries to access the database. There are also some public domain scripting languages that ease access to databases from a CGI, such as GSQL from NCSA.

Can Web technology be used to deploy internal applications?

Yes. In fact, this may be the largest use of Web technology. As menioned 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.

As an example, an organization with 900 PC's, 900 Mac's and 300 Sun workstations decided to use HTML as their user interface, write their application in C accessing an existing corporate Sybase database. This decision was made because of the ease of user interface development compared with the cross platform development alternatives on the market. The application has turned out to be a major success because of quick time to deployment, and the ease of use of the user interface.

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 Forms (for data input and request) and HTML Templates (that will hold data returned to the end-user from your application). These can be created in your favorite HTML Authoring tool like HoTMetaL, SGI's WebAuthor, 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 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 HTML documents onto the Bind Editor. This "binds" HTML elements such as a text input field or an option menu to arguments; and results returning from your object to other HTML elements such as an ordered list. Sapphire/Web automatically populates the returned data into your HTML Templates.

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

5. Generate Code in pure C or C++. This generates a CGI 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 CGI program in the specified http server CGI directory.

How do I create my HTML forms, templates and documents?

Sapphire/Web is an open tool that works with any HTML authoring tool - whether you create files from scratch with an editor, use an HTML authoring tool like HoTMetaL or SGI's WebAuthor, or use a word processing to HTML generator like ones available from Frame, Interleaf, Microsoft or WordPerfect.

What types of Objects does Sapphire/Web support?

Sapphire/Web supports the following object types in the first version:

In the second version, Sapphire/Web will be using the ObjectBridge technology to support multiple object systems including OLE and CORBA implementations such as Orbix and DSOM.

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 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 an HTML interface on existing applications since most applications are already modularized in functions, or can be wrapped as function calls.

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 SoftBench, SPARCWorks, CodeCenter, ObjectCenter, and SGI's development kit. In addition, it can be used on larger projects in conjunction with products like 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 protoype thru 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++ - 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.

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'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 progamming environment improves productivity. It is similar to db-UIM/X in that it uses standard C and C++, 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 HTML user interfaces are much easier to build for developers, and much easier to use. The down side of HTML is the simplicity is sometimes limiting - for example you cannot have multiple windows up at the same time, or dialog boxes appear to guide a user. However, applications are immediately available across multiple user interface platforms such as Windows, Motif, Mac and character terminals.

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.

V. Sapphire/Web Architecture

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

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 and Informix.

This is the same architectural approach Bluestone used when developing db-UIM/X - the popular client/server development tool for UNIX developers of Motif and cross platform applications.

What is the Bluestone ORB?

Bluestone developed an ORB based on the CORBA standards to facilitate a transparent network achitecture 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 Bluestone ORB can run in conjunction with a general purpose ORB, such as Orbix, or DSOM.

Specifically, the ORB implements only two types of functions - first to get the meta data about a database, and second to execute something - whether it is raw SQL being passed by the client, or a stored procedure.

There can be multiple ORB's running on the network, and they can run anywhere on the network. Clients talk to ORB's based on a "seed" number that can be set thru a convenient resource setting.

Do I need the Bluestone ORB?

No. The Bluestone ORB can be completely replaced with the native database vendor's network library, such as Sybase Open Client.

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

Is your API public?

Yes. Bluestone will be making our API layer public. 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.

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.

How can I find out more?

Contact Bluestone:
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

| Bluestone Home | Sales | Technical Support | Request Info |


This site is maintained by webmaster@bluestone.com
Last updated 31-Jul-1995