350 likes | 543 Vues
Client Server Technologies. Presented by: Gord Davey. Presentation Overview. Application Server Enhancements JavX Enhancements Client/Server Efficient Coding AutoUpdater. Application Server Enhancements. NT Service Support Enhanced Logging Enhanced Start-In and INI
E N D
Client Server Technologies Presented by: Gord Davey
Presentation Overview • Application Server Enhancements • JavX Enhancements • Client/Server Efficient Coding • AutoUpdater
Application Server Enhancements • 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 Server PID
Application Server Enhancements • 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%
JavX 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 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.
Client/Server Efficient Coding 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 …
AutoUpdater • Features • Server-Side Setup • Server-Side Directory Structure • Server-Side Configuration
AutoUpdater Features • 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
AutoUpdater Features • 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
AutoUpdater Server-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!
AutoUpdater Server-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)
AutoUpdater Server-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)
AutoUpdater Server-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
AutoUpdater Server-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
AutoUpdater Server-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)
AutoUpdater Server-Side Configuration • Interactive=Silent or Prompted (if not set, the default is Prompted)
AutoUpdater Server-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.0000 RepositoryPrefix=PVX Directory to look in will be \lib\_repository\pvx.7.00.0000
AutoUpdater Server-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
AutoUpdater Server-Side Configuration • AllowClientInitiation=Y or N (if null then default is N) • Displays dialogue advising user on what will happen
AutoUpdater Server-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)
AutoUpdater Example autoupdate.conf file [DEFAULTS] INTERACTIVE= SILENT ALLOWUPGRADE=Y ALLOWDOWNGRADE=Y ALLOWCOMPARE=Y COMPAREFREQUENCY=M LOOKANDFEEL=4 [DEBUG] LOGLEVEL=0 [PRODUCTS] 1=ProvideX 2=WindX Standalone 3=WindX Plugin 4=JavX [PRODUCT:ProvideX] IDENTIFIER=PVX CURRENTVERSION=7.00.0000 REPOSITORYPREFIX=pvx [PRODUCT:WindX Standalone] IDENTIFIER=WXS CURRENTVERSION=7.00.0000 REPOSITORYPREFIX=pvx [PRODUCT:WindX Plugin] IDENTIFIER=WXP CURRENTVERSION=7.00.0000 REPOSITORYPREFIX=pvx [10.100.1.1] ALLOWUPGRADE=N
AutoUpdater Example manifest.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
THANK YOU! End of Presentation
THANK YOU! End of Presentation