Date post: | 12-Jan-2016 |
Category: |
Documents |
Upload: | teresa-ferguson |
View: | 224 times |
Download: | 2 times |
Client Server Technologies
Presented by:Gord Davey
Presentation Overview
Application Server Enhancements
JavX Enhancements
Client/Server Efficient Coding
AutoUpdater
• NT Service Support• Enhanced Logging• Enhanced Start-In and INI • Improved User Switching• Terminate/Break and Log Clearing
Commands are now sent to the Server• Fatal Error Log “pvx.appserv.log”• Speed Increase – 6% to 10%• and more
Application Server Enhancements
• NT Service Support• Simple Install/Un-Install/Start/Stop
Application Server Enhancements
• Logging Enhancements• Clear All and Log Rotation
Application Server Enhancements
Server PID
• Start-In and INI for spawned tasks enhanced
Application Server Enhancements
• Improved User Switching• Uses DEF UID if available rather than “su”
• Terminate/Break and Log Clearing Commands are now sent to the Server• Config may run as a different user from
daemon
• Fatal Error Log pvx.appserv.log• To /tmp (*nix) or current directory (windows)
• Miscellaneous:• New Menu Item: Shutdown All Servers• Server PID for each daemon displayed
• Speed Increase – 6% to 10%
Application Server Enhancements
• JavX V2.5 now comes in 3 editions• JavX SE – Swing Edition
• Closest to ProvideX in terms of GUI Controls• Includes: Grid, Formatted List Boxes, Tree View,
List View, Report View, Full Button characteristics
• JavX AE – AWT Edition• Lightweight GUI Interface
• Includes: list box, buttons, check boxes, radio buttons, etc., all in simplified form
• Excludes: Grid, Formatted List Boxes, Tree View, List View, Report View, Full Button characteristics
• JavX LE – Lite Edition• Has no character mode or graphical mode
user interface.
• Direct to Java Object Interface
JavX Enhancements
JavX Enhancements
• JavX SE – Swing Edition• Full range of GUI controls supported with
virtually all options
• Requires Java 2 SE (Standard Edition) Runtime (version 1.42) or higher
• Equivalent to prior releases of JavX
• Most feature rich
JavX Enhancements
• JavX AE – AWT Edition• Limited range of simplified GUI controls
available
• Requires Java 2 ME CDC PP (Micro Edition, Constrained Device Context, Personal Profile) Runtime (any version) or higher
• Intended for PDAs (Pocket PC, Windows CE Devices), Embedded Devices and Desktop PCs
JavX Enhancements
• JavX LE – Lite Edition• Has no character or graphical user interface
at all
• Requires Java 2 ME CDC FP (Micro Edition, Constrained Device Context, Foundation Profile) Runtime (any version) or higher
• Intended for Java devices that do not have a user interface (routers, gateways, printers)
JavX Enhancements
• Direct to Java Object Interface• Uses ProvideX DEF OBJECT syntax
DEF OBJECT X,@(x,y,w,h)=“[wdx]javax.swing.JSlider”DEF OBJECT X,“[wdx]JDBCDriver”
• Instantiate and utilize Java Classes directly, manipulating properties, executing methods, listening for events and more.
• Allows for the use of the Java BeanShell class, which can take Java source code directly.
Minimize Data• Send only enough data to get the job
done• Analyze your screens
• Perhaps there is a different approach that might require less object loading (list box, drop box, grid)
• Make use of special features to minimize loading:
• Load-on-Demand feature for listboxes
• Query object, which reads records one page at a time
Client/Server Efficient Coding
Minimize Data• Be careful of CALL
• A CALL “[WDX]SomeProg”,X$ will send the current contents of X$ to the client and will receive it back.
• If X$ was 20,000 X’s on the way up, and it was not modified on the client, then 20,000 X’s will come back
• In these cases, get the program on the WindX side to clear the unneeded variables before the CALL completes
Client/Server Efficient Coding
Minimize Send/Receive Occurrences• Items such as FID( ), FIB( ), FIN( ), OBJ( ),
MSE( ), etc., must be retrieved from the workstation
• Avoid code that asks for these types of items repeatedly
• Consider:• for x=1 to 10000; y=fin(chan,”numrec”);a*=5; next; y=fin(chan,”numrec”)
• y=fin(chan,”numrec”);for x=1 to 10000;a*=5; next; y=fin(chan,”numrec”)
• 10001 packet requests versus 2 packet requests
Client/Server Efficient Coding
Minimize Send/Receive Occurrences• Any variable or function that requires data from
WindX will cause the system to pause until it has an answer
• For example, when using TXW( ) and TXH( ) to determine the sizes of text at various point sizes:• It is better to put the code in a CALL and
make one CALL across a WindX connection, than it is to repeatedly call TXW( ) and TXH( )Note: This is true for any function, not just for TXW( ) and TXH( )
Client/Server Efficient Coding
Minimize Send/Receive Occurrences• When dealing with Objects and their Dynamic
Properties, try to use the newer _PropList$ and _PropValues$ to retrieve or set multiple properties at once
• When dealing with properties, try to organize your code so that sets and gets are grouped together• Don’t do a property get, then a set, then a
get, then a set, then a get …
Client/Server Efficient Coding
• Features • Server-Side Setup• Server-Side Directory Structure• Server-Side Configuration
AutoUpdater
AutoUpdaterFeatures
• Automated software updating for Client/Server environments• WindX Stand-Alone (Version 4.11 and higher)• WindX Plug-in (Version 4.11 and higher)• ProvideX with WindX (Version 5.10 and higher)
• Repository based system• Software to be pushed resides on the Server• No client software installation required• Customizable to include your software requirements
• Requires V7 ProvideX on Server, with a V7 activation key• Will perform Upgrades, Downgrades or Repairs
• Intelligent restart capability if session is severed
AutoUpdaterFeatures
• Assigns ‘Show updates’ of the Add or Remove Programs dialogue in Windows
• Configurable User Interaction
• Automated COM and DLL registration
• Will detect and shutdown other client sessions currently invoked on Workstation that are using same executable
• No client reboot required after an upgrade, downgrade, or repair
• Windows 9X, NT, 2000, XP, Server 2003 compliant
• Has logging capability
AutoUpdaterServer-Side Setup
• Download the required .zip (Windows) or .taz (UNIX or Linux) file for the version you wish to auto upgrade or downgrade from our Web Site www.pvx.com or ftp.pvx.com
• Unzip/untar the file into the Server’s /lib/_repository directory
• Turn on the AutoUpdater in its configuration file
...that’s it - you’re done!
AutoUpdaterServer-Side Directory Structure
• When installing ProvideX Version 7, a new directory will be created: \lib\_updater\• cinfo (software that is moved to clients machine to obtain all
the client’s information; i.e., version, startup information, libraries, etc.)
• windx.upd (main control program for WindX update)• autoupdate.pvc (AutoUpdate engine that performs all required
functions for the product update; i.e., windx.upd)• Contains the autoupdate.conf (default configuration setup file)
AutoUpdaterServer-Side Directory Structure
• Once you download and unzip/untar the required repository file, the _repository directory will contain• Software to be deployed to the client workstations• \lib\_repository\<prefix><Version X.XX.XXXX>\• manifest.conf (holds information about the
product version on each file and deployment type; i.e., WindX Standalone, Plug-in, or ProvideX)
AutoUpdaterServer-Side Configuration
• Text based configuration file• Copy the autoupdate.conf , default config file to
autoupdatecustom.conf to customize your configuration• Configuration file contains identification tags
• [Defaults] All settings defined under this tag are the defaults• You may add user-specific settings by adding tags for each
user[<IP Address>] i.e. [10.100.10.10][<IP Address>+”:”+<MachineName>] i.e.
[10.100.10.10:MyBox][<UserID>] i.e. [Tom]
• Settings• Broken up into 3 parts• Defaults, Debug, and Products
• Settings may be placed in both Defaults or Product sections
• Specific order: Defaults, Products, User-Defined
AutoUpdaterServer-Side Configuration
• AllowUpgrade=Y or N (if null then default is N)• Indicates whether an upgrade should take place
if client’s workstation version ID is lower than version in autoupdate.conf
• AllowDownGrade=Y or N (if null then default is N)• Indicates whether a downgrade should take
place if client’s workstation version is higher than version in autoupdate.conf
AutoUpdaterServer-Side Configuration
• AllowCompare=Y or N (if null then default is N)• Indicates whether repair should take place if
client’s workstation version is same as version in autoupdate.conf
• CompareFrequency=D or W or M or 2Tuesday• D = Once Daily• W = Once Weekly• M = Once Monthly• 2Tuesday = Every Second Tuesday of the month
• Format is Number+Day (Fri or Friday)
AutoUpdaterServer-Side Configuration
• Interactive=Silent or Prompted (if not set, the default is Prompted)
AutoUpdaterServer-Side Configuration
• CurrentVersion=7.00.0000• This is the value that all client sessions will be
compared against to identify whether an update is to proceed
• RepositoryPrefix=pvx• Windx.upd will take this value + CurrentVersion
and look in this directory within the repository directory to get manifest information on what files to move i.e.,
CurrentVersion = 7.00.0000RepositoryPrefix=PVXDirectory to look in will be \lib\_repository\pvx.7.00.0000
AutoUpdaterServer-Side Configuration
• LogLevel=0 -> 9 (if null then default is 0)
• KillProcessMsg=Y or N (if null then default is N)• Indicates if the user will receive a message box
advising them that a session running with the same executable is going to be terminated
AutoUpdaterServer-Side Configuration
• AllowClientInitiation=Y or N (if null then default is N)• Displays dialogue advising user on what will
happen
AutoUpdaterServer-Side Configuration
• AllowClientCancellation=Y or N (if null then default is N)• Indicates if all the user dialogues contain a Close
or Cancel button
• LookandFeel= 4,3,2• 2 (Windows 3.1 style)• 3 (Windows 95 style)• 4 (XP style)
[DEFAULTS]INTERACTIVE= SILENTALLOWUPGRADE=YALLOWDOWNGRADE=YALLOWCOMPARE=YCOMPAREFREQUENCY=MLOOKANDFEEL=4
[DEBUG]LOGLEVEL=0
[PRODUCTS]1=ProvideX2=WindX Standalone3=WindX Plugin4=JavX
[PRODUCT:ProvideX]IDENTIFIER=PVXCURRENTVERSION=7.00.0000REPOSITORYPREFIX=pvx
[PRODUCT:WindX Standalone]IDENTIFIER=WXSCURRENTVERSION=7.00.0000REPOSITORYPREFIX=pvx
[PRODUCT:WindX Plugin]IDENTIFIER=WXPCURRENTVERSION=7.00.0000REPOSITORYPREFIX=pvx
[10.100.1.1]ALLOWUPGRADE=N
AutoUpdaterExample autoupdate.conf file
# Manifest.conf - For ProvideX and WindX Version 7.00.0000# issued: July 2005
pvxcom.exe ;Ver=5.10.2000;ASCII;ID=WXS,PVX;Reg=9;RegInstall=pvxcom.exe /unregserver;RegUnInstall= /unregserver
Pvxwin32.exe ;Ver=7.00.0000 # This is a remark
AutoUpdaterExample manifest.conf file
THANK YOU!
End of Presentation
THANK YOU!
End of Presentation