PolyServer is connectivity and networking _middleware_ that can be used in
lieu of DBMS vendor middleware (such as Oracle SQL*Net, Sybase Open Client)
or to connect to FMS's, and DBMS's for which no off-the-shelf middleware
exists. PolyServer is _best_ used with UNIFACE; there have been some people
who have written their own SW to work with PolyServer, but as in any such
situation, this is a serious undertaking.
One of the main advantages of PolyServer is that it enables UNIFACE applications
to transparently perform full read and write access to heterogeneous data sources
over multiple networks. For example, you can have your application access
multiple data sources, such as your data in Oracle, and your DICT & UOBJ in
RMS, etc. In this architecture, a UNIFACE client application makes generic
data I/O requests which are routed via a network driver (TCP/IP, DECNet, etc.)
to the appropriate PolyServer. PolyServer uses DBSM drivers to convert the I/O
requests into the native DML/DDL of the underlying data sources and return only
the relevant information to the client. For complex configurations, data from
several servers can be accessed and joined by linking PolyServers from one system
to another. From the UNIFACE application's perspective, all data access is
transparent. Network paths are set up in a UNIFACE assignment (configuration)
file which can be dynamically altered if required.
Also, PolyServer can provide superior client/server performance by performing
more efficient networking messaging and management to reduce network traffic
and DBMS overhead on the server. Several optimization techniques significantly
reduce network overhead and DBMS server overhead, such as transmitting tokenized
I/O data between client and server and only sending query data as required rather
than all data.
In addition, PolyServer (starting with version 6) enables UNIFACE .frm files
to reside on a remote server and then be retreived and executed by a UNIFACE
client application, transforming a remote server into an application server.
This eliminates the need to set up and maintain a separate UNIFACE application
server. In conjunction with UNIFACE V6's DOL facility, PolyServer transparently
enables central application objects (central procs, messages, glyphs, etc.) to
reside in a platform-independent format on a server. UNIFACE client apps can
transparently retrieve the application objects when required, greatly simplifying
application distribution for client/server applications, since object modifications
need only be maintained in one central location.
UNIFACE and PolyServer perform two-phase commits for data sources which support
them. In the case where some data sources do and others do not support two-phase
commit, UNIFACE would then commit the data to non-two-phase-commit data sources
and then perform the second phase commit, assuming that everything else had been
successful up to that point.
I've found PolyServer's performance comparable to if not faster than Open Client
and SQL*Net V1, V2.
I hope this information is of some help.
-Charlton.
>
> >
> > We are currently using Uniface 5.2.f with Sybase driver right into Sybase.
> > We are looking at some Mainframe access with Uniface -- this would
> > require the new MVS Polyserver.
> >
> > Is the Polyserver just a network protocol converter? Or does it do
> > part of the data lookup, or does it just pass messages from the db drivers?
>
> Brenda,
>
> While probably not 100% correct, it is often easiest to think of
> polyserver as a Uniface application with the user interface removed
> and replaced by a network connection to a remote machine. The database
> drivers are linked into polyserver. It connects to your database,
> retrieves data, and feeds it back down the network pipe based on the
> requests it receives from the network connection.
>
> Can polyserver do more -- definately. This is the "Reader's Digest"
> version.
>
> Hope this helps,
>
> --
> Bill Shaver Email: bsh...@dev3.ctc.edu Phone: (206) 803-9753
>
--
+------------------------------------------------------------------+
| Charlton Barreto cbar...@uniface.alameda.ca.us |
| Advanced Support Team charlton...@compuware.com |
| Uniface Corporation cbar...@ocf.berkeley.edu |
| 1320 Harbor Bay Pkwy, Ste 100 voice: (510) 748-6484 |
| Alameda, CA 94502 fax : (510) 748-6101 |
+------------------------------------------------------------------+
| #include <disclaimer.h> |
| GEEK CODE |
| GCM/B/CS d++@ H- S+;++ g-(+++) au+ a- w- v+ C++ UH++ P? L+ N++ |
| E---- W++ M-- V po+++(+) t+ 5 jx R tv+ b++ D+ B--- e- |
| e- u+ h f r--- n--- y+ |
+------------------------------------------------------------------+
>Is the Polyserver just a network protocol converter? Or does it do
>part of the data lookup, or does it just pass messages from the db
drivers?
The last one. The Polyserver in it's most basic form is the Uniface
data management system. In fact, there's a polyserver code line running
even in "host mode" or without any Uniface network drivers. It's just
not called the Polyserver at that point, but the code line is the same.
The job of the Polyserver, when running on the other end of a network
connection, is to pass requests between the database drivers (or other
network drivers if you've daisy-chained Polyservers) and the part of
the system that's running your application. When the request is
initially made at the point that the form is talking to the data
management layer (the local polyserver that's not called polyserver)
there is a bit more taking place because it's talking to the user
interface and proc interpretter and such instead, i.e. the full UTRL
(Uniface RunTime Library).
You'll sometimes see the Polyserver described as a subset of the
Uniface runtime system, or as a Uniface system with the user interface
lopped off, and the above is why.
What they've actually done with the MVS version I don't know. I suspect
the implementation is significantly different, but the role of that
layer would remain the same.
>Just some more info...:
[snap]
> PolyServer is _best_ used with UNIFACE; there have been some people
>who have written their own SW to work with PolyServer, but as in any such
>situation, this is a serious undertaking.
This would mean that the people who wrote their own software know the
communication protocol of Polyserver.
Where is this documented or where can a document be obtained ?
Bert Catsburg
I know about a DBMS cookbook which describes the interface
between UNIFACE 5.x and database drivers (e.g. udbora.dll) and
heard about some people who wrote drivers for their own
databases. I am not sure if the polyserver interfaces are
part of this cookbook. And I know nothing about a UNIFACE SIX
cookbook. I believe that in some cases such a cookbook is
usefull, but interfaces may change and there will be no support
of such drivers.
und tschuess
Oliver