400 likes | 1.02k Views
DEV-7: Ease your Deployment Woes with OpenEdge WebClient?. . OpenEdge?WebClient. Introduction to WebClientWebClient in ActionIs WebClient for you? WebClient ArchitectureWebClient ? Putting it all TogetherSummary ? It's not Magic! Where To Go for More Info. Agenda ? Making Application deployment easier! .
E N D
1. DEV-7: Ease your Deployment Woes with OpenEdge® WebClient - It's not Magic! Track: DEV Using OpenEdge 10 to Develop Business Applications
Dev-7 Ease your Deployment Woes with OpenEdge WebClient - It's not magic!
Wouldn't it be nice if you could guarantee your users all running the same version of code without you running around installing updates everywhere ? Got a change to make? Then make the change, compile the code and put on the server - the next time the users start the application they will pick up the changes - no its not magic, but WebClient !
You can, today with OpenEdge WebClient. WebClient, first introduced in 2000 with the Progress 9.1B release, enables you to more rapidly, and easily, deploy applications on the Internet, on an intranet, or on an extranet. It's not just for the Web!
The OpenEdge WebClient enables deployment of thin, Progress OpenEdge GUI applications over a network, minimizing network traffic and the need to maintain application software on the client.
Its not just for the Web!
And neither is it Magic! (it might just look like it!)Track: DEV Using OpenEdge 10 to Develop Business Applications
Dev-7 Ease your Deployment Woes with OpenEdge WebClient - It's not magic!
2. DEV-7: Ease your Deployment Woes with OpenEdge WebClient OpenEdge WebClient Introduction to WebClient
WebClient in Action
Is WebClient for you?
WebClient Architecture
WebClient Putting it all Together
Summary Its not Magic!
Where To Go for More Info
This session introduces the concept of the OpenEdge WebClient.
Apart from WebClient what options are there to deploy over the Web WebSpeed or a 3rd party product such as Citrix
Well take a look at the architecture and components, explaining how it all hangs together!
Well also review what you need to take advantage of WebClient and review how applications have been implemented with WebClient.This session introduces the concept of the OpenEdge WebClient.
Apart from WebClient what options are there to deploy over the Web WebSpeed or a 3rd party product such as Citrix
Well take a look at the architecture and components, explaining how it all hangs together!
Well also review what you need to take advantage of WebClient and review how applications have been implemented with WebClient.
3. DEV-7: Ease your Deployment Woes with OpenEdge WebClient Easy way to deploy OpenEdge GUI Applications
Remotely
Over the Web
Infrastructure, distribution and execution mechanism for n-tier OpenEdge GUI applications
Ideal for Service-Oriented Business Applications
OpenEdge WebClient Is . . . WebClient lets you, the application deployer, take an n-tier, OpenEdge GUI application, deploy and configure its back-end components as desired, package its front-end components, and place the packages on a server. Similarly, you can package updates to the application and place them on a server as well. The end-user can launch the installation process from a Browser, File Server or Media. The WC & the App UI is installed and the user can run the application from a shortcut. They can downloads update packages, and installs the updates all with a high degree of transparency.WebClient lets you, the application deployer, take an n-tier, OpenEdge GUI application, deploy and configure its back-end components as desired, package its front-end components, and place the packages on a server. Similarly, you can package updates to the application and place them on a server as well. The end-user can launch the installation process from a Browser, File Server or Media. The WC & the App UI is installed and the user can run the application from a shortcut. They can downloads update packages, and installs the updates all with a high degree of transparency.
4. DEV-7: Ease your Deployment Woes with OpenEdge WebClient WebClient History WebClient
September 2000
Progress 9.1B
IntelliStream Technology
July 2001
Progress 9.1C
WebClient Deployment Packager
August 2004
OpenEdge 10.0B Phase 1 of the WebClient release was with 9.1b, allowing applications to be packaged and deployed remotely. The developer needed to set up an installer for the application using a 3rd party product such as InstallShield.
With 9.1c we extended the WebClient with IntelliStream technology - providing an alternative dynamic delivery provisioning model, which can significantly reduce the amount of time it takes to deliver an application to an end-user machine. A significant performance benefit can be seen the first time the end-user wants to execute the application as well as during subsequent executions when updates to the application are delivered to the end-user machine.
10.0B we added the WebClient Deployer Packager enabling the customer to create their own custom deployment configurations, working with the .prowcapc files that they receive from application developers.
Phase 1 of the WebClient release was with 9.1b, allowing applications to be packaged and deployed remotely. The developer needed to set up an installer for the application using a 3rd party product such as InstallShield.
With 9.1c we extended the WebClient with IntelliStream technology - providing an alternative dynamic delivery provisioning model, which can significantly reduce the amount of time it takes to deliver an application to an end-user machine. A significant performance benefit can be seen the first time the end-user wants to execute the application as well as during subsequent executions when updates to the application are delivered to the end-user machine.
10.0B we added the WebClient Deployer Packager enabling the customer to create their own custom deployment configurations, working with the .prowcapc files that they receive from application developers.
5. DEV-7: Ease your Deployment Woes with OpenEdge WebClient Just for the Web
Only for SaaS* Providers
A Browser based Application
OpenEdge WebClient is NOT. . . A few misconceptions - What it is NOT!A few misconceptions - What it is NOT!
6. DEV-7: Ease your Deployment Woes with OpenEdge WebClient For any customer
Internal application deployment
Application Partners
SaaS Providers
For an application that has
OpenEdge Windows Interface
Database calls through the Application Server
Suitable for several configurations
Internet, Intranet, Extranet, LAN, WAN . . . OpenEdge WebClient is . . . Appropriate for all types of customers, whether you are an Application Partner, a SaaS Provider, or possibly deploying an application for internal use.
Unlike a standard Progress OpenEdge Windows GUI client, the WebClient will not be able to directly access the database. Its purpose is to run only Presentation Layer code, leaving the database access and other business logic, and validation functions to be run on the AppServer. To take advantage of WebClient, an application must have been developed with true separation of user interface and business logic. It runs as a free-standing application on the end-users PC, executing Presentation Layer code and communicating with the Progress OpenEdge AppServer over the Web, an Intranet, Extranet or LAN; we have several customers deploying over a dial-up also
Support for HTTPS Tunneling and the Secure Sockets Layer (SSL) enables the WebClient to ensure the security of message transmissions.
So if you have developed your application and partitioned with AppServer, with no direct Database calls you can use WebClient TODAY
And its not only for Web deployments ! Appropriate for all types of customers, whether you are an Application Partner, a SaaS Provider, or possibly deploying an application for internal use.
Unlike a standard Progress OpenEdge Windows GUI client, the WebClient will not be able to directly access the database. Its purpose is to run only Presentation Layer code, leaving the database access and other business logic, and validation functions to be run on the AppServer. To take advantage of WebClient, an application must have been developed with true separation of user interface and business logic. It runs as a free-standing application on the end-users PC, executing Presentation Layer code and communicating with the Progress OpenEdge AppServer over the Web, an Intranet, Extranet or LAN; we have several customers deploying over a dial-up also
Support for HTTPS Tunneling and the Secure Sockets Layer (SSL) enables the WebClient to ensure the security of message transmissions.
So if you have developed your application and partitioned with AppServer, with no direct Database calls you can use WebClient TODAY
And its not only for Web deployments !
7. DEV-7: Ease your Deployment Woes with OpenEdge WebClient OpenEdge Application Deployment Options Quick recap of AppServer based Applications they can be accessed from ANY Client !!
The WebSpeed Transaction Server is a separate application server that handles html requests and renders the results back to a browser.
A WSTS agent can be a client to the AppServer and vice versa, sharing ABL application logic.
With OpenEdge 10, the packaging has been simplified, there are now 2 application server licenses:
OpenEdge Application Server Basic Edition
Application server for all types of clients including Progress 4GL/OpenEdge ABL (Client Networking and WebClient), HTML Web based applications, and Open Clients (Java and .NET). In addition, an OpenEdge application can also be deployed as a Web service. AppServer enables the execution of 4GL-based remote procedures that are stored on a server and called by Any client application. Includes networking for connecting to remote OpenEdge RDBMS servers, other OpenEdge Application Servers, or OpenEdge DataServers. Also includes Adapter for SonicMQ, AppServer Internet Adapter, and WebSpeed Transaction Server. The Basic Edition is the entry level OpenEdge Application Server for small to mid-sized deployments that require AppServer or WebSpeed functionality without the requirement for Load Balancing, full Web services, or Sonic ESB support.
OpenEdge Application Server Enterprise Edition
Also includes OpenEdge Adapter for Sonic ESB, Secure AppServer Internet Adapter, and Web services Tools. The Enterprise Edition is for mid-sized to large deployments of mission critical, transaction intensive applications.Quick recap of AppServer based Applications they can be accessed from ANY Client !!
The WebSpeed Transaction Server is a separate application server that handles html requests and renders the results back to a browser.
A WSTS agent can be a client to the AppServer and vice versa, sharing ABL application logic.
With OpenEdge 10, the packaging has been simplified, there are now 2 application server licenses:
OpenEdge Application Server Basic Edition
Application server for all types of clients including Progress 4GL/OpenEdge ABL (Client Networking and WebClient), HTML Web based applications, and Open Clients (Java and .NET). In addition, an OpenEdge application can also be deployed as a Web service. AppServer enables the execution of 4GL-based remote procedures that are stored on a server and called by Any client application. Includes networking for connecting to remote OpenEdge RDBMS servers, other OpenEdge Application Servers, or OpenEdge DataServers. Also includes Adapter for SonicMQ, AppServer Internet Adapter, and WebSpeed Transaction Server. The Basic Edition is the entry level OpenEdge Application Server for small to mid-sized deployments that require AppServer or WebSpeed functionality without the requirement for Load Balancing, full Web services, or Sonic ESB support.
OpenEdge Application Server Enterprise Edition
Also includes OpenEdge Adapter for Sonic ESB, Secure AppServer Internet Adapter, and Web services Tools. The Enterprise Edition is for mid-sized to large deployments of mission critical, transaction intensive applications.
8. DEV-7: Ease your Deployment Woes with OpenEdge WebClient WebClient Application at a Glance Designed to be used to deploy the client components of an application, the WebClient lets you deliver a rich graphical interface, just like the standard GUI (infact it is because it is simply a stripped down version of Prowin32!), with the application being automatically installed on the client machine.
With WebClient, there is no need to manufacture and distributed CDs each time there is a new release of your application. An end-user simply clicks on a link (either a URL, Shortcut or a File Server Location) that you provide and the application can be installed and updated over the Network (LAN, WAN, Internet, Extranet . .)
Each time the end-user runs the application, the WebClient Initializer determines if the application has been updated. If it has, the new components can be installed before execution of their application is started. At configuration time you define if the application can run without the update or not!
and WebClient can be used with or without the AppServer Internet Adapter depending on whether you are running your application on the Internet or on an Intranet or Extranet.Designed to be used to deploy the client components of an application, the WebClient lets you deliver a rich graphical interface, just like the standard GUI (infact it is because it is simply a stripped down version of Prowin32!), with the application being automatically installed on the client machine.
With WebClient, there is no need to manufacture and distributed CDs each time there is a new release of your application. An end-user simply clicks on a link (either a URL, Shortcut or a File Server Location) that you provide and the application can be installed and updated over the Network (LAN, WAN, Internet, Extranet . .)
Each time the end-user runs the application, the WebClient Initializer determines if the application has been updated. If it has, the new components can be installed before execution of their application is started. At configuration time you define if the application can run without the update or not!
and WebClient can be used with or without the AppServer Internet Adapter depending on whether you are running your application on the Internet or on an Intranet or Extranet.
9. DEV-7: Ease your Deployment Woes with OpenEdge WebClient Extends the AppServer to the Internet
URL connection
Tunneling
HTTP (AIA)
HTTPS (AIA/S)
Java Servlet
Runs on Web Server with Java Servlet Engine
AppServer Internet Adapter The OpenEdge AppServer architecture was enhanced to include AIA to support HTTP tunneling.
The AIA is a Java servlet that is run by a Java servlet engine (JSE), which allows Java programs to run on the Web server machine. The AIA supports deployment of distributed applications over the Web by extending the AppServer architecture to support HTTP and HTTPS tunneling. HTTP tunneling encapsulates the communications protocol between an AppServer client and an AppServer within standard HTTP requests and "tunnels" those requests through a Web server.
HTTPS is HTTP on a Secure Socket Layer (SSL) connection rather than the standard unencrypted TCP/IP connection. HTTPS is used when privacy, integrity, and server authentication are needed in addition to HTTP tunneling.
To use the HTTPS protocol, you can use either the WebClient or the standard 4GL client with Client-side Security product. Communication between the AppServer client and the AIA is performed through the Web server using the HTTP or HTTPS protocol. The AIA converts requests that are encapsulated within HTTP or HTTPS to the standard AppServer protocol.
Tunneling allows AppServer clients to communicate through firewalls without requiring a network administrator to allow additional protocols or ports to be accessed through a firewall.
The OpenEdge AppServer architecture was enhanced to include AIA to support HTTP tunneling.
The AIA is a Java servlet that is run by a Java servlet engine (JSE), which allows Java programs to run on the Web server machine. The AIA supports deployment of distributed applications over the Web by extending the AppServer architecture to support HTTP and HTTPS tunneling. HTTP tunneling encapsulates the communications protocol between an AppServer client and an AppServer within standard HTTP requests and "tunnels" those requests through a Web server.
HTTPS is HTTP on a Secure Socket Layer (SSL) connection rather than the standard unencrypted TCP/IP connection. HTTPS is used when privacy, integrity, and server authentication are needed in addition to HTTP tunneling.
To use the HTTPS protocol, you can use either the WebClient or the standard 4GL client with Client-side Security product. Communication between the AppServer client and the AIA is performed through the Web server using the HTTP or HTTPS protocol. The AIA converts requests that are encapsulated within HTTP or HTTPS to the standard AppServer protocol.
Tunneling allows AppServer clients to communicate through firewalls without requiring a network administrator to allow additional protocols or ports to be accessed through a firewall.
10. DEV-7: Ease your Deployment Woes with OpenEdge WebClient OpenEdge WebClient Introduction to WebClient
WebClient in Action
Is WebClient for you?
WebClient Architecture
WebClient Putting it all Together
Summary Its not Magic!
Where To Go for More Info
11. DEV-7: Ease your Deployment Woes with OpenEdge WebClient WebClient in Action
12. DEV-7: Ease your Deployment Woes with OpenEdge WebClient OpenEdge WebClient Introduction to WebClient
WebClient in Action
Is WebClient for you?
WebClient Architecture
WebClient Putting it all Together
Summary Its not Magic!
Where To Go for More Info
13. DEV-7: Ease your Deployment Woes with OpenEdge WebClient OpenEdge GUI Client
Small footprint on application users PC
Full support for Temp-Tables, ProDataSets, dynamic queries . . .
Client components run locally, with remote calls for Server components
Over the Web using AIA or AIA/S
Locally with TCP/IP
Automatic download, installation, & update of the WebClient and the application WebClient Highlights WebClient lets you, the application deployer, take an n-tier, OpenEdge GUI application, deploy and configure its back-end components as desired, package its front-end components, and place the packages on a server. Similarly, you can package updates to the application and place them on a server as well. The end-user can launch the installation process from a Browser, File Server or Media. The WC & the App UI is installed and the user can run the application from a shortcut. They can downloads update packages, and installs the updates all with a high degree of transparency.
Highlights:
- Rich GUI functionality over the Internet or Intranet
- Free and easy download and installation
- Easy, automatic, incremental download of client application
- Easy application distribution and management
- Secure Communications over the Web: HTTP and HTTPS (SSL) tunneling
WebClient lets you, the application deployer, take an n-tier, OpenEdge GUI application, deploy and configure its back-end components as desired, package its front-end components, and place the packages on a server. Similarly, you can package updates to the application and place them on a server as well. The end-user can launch the installation process from a Browser, File Server or Media. The WC & the App UI is installed and the user can run the application from a shortcut. They can downloads update packages, and installs the updates all with a high degree of transparency.
Highlights:
- Rich GUI functionality over the Internet or Intranet
- Free and easy download and installation
- Easy, automatic, incremental download of client application
- Easy application distribution and management
- Secure Communications over the Web: HTTP and HTTPS (SSL) tunneling
14. DEV-7: Ease your Deployment Woes with OpenEdge WebClient WebSpeed® or WebClient ? Questions to answer:
What kind of interface do your users need?
Is the application architected for the AppServer?
Do you wish to deploy with a 3rd party, server based product (eg Citrix)
What Servers do you need?
What 3rd party licences will you need?
Questions to answer:
What kind of interface do your users need?
Is the application architected for the AppServer?
Do you wish to deploy with a 3rd party, server based product (eg Citrix)
What Servers do you need?
What 3rd party licences will you need?
15. DEV-7: Ease your Deployment Woes with OpenEdge WebClient WebClient can
Install Initial application component(s)
Detect when application needs to be updated
Automatically download just the changed r-code
At Startup
As Needed
Ask User at Startup
OpenEdge WebClient However, instead of running an installation procedure clicking on the web page will result in the download of some subset of the cab that are stored on the delivery server. Dependent on the download mode defined, only those cab files that contain the r code needed to start the application will be downloaded. As execution of the application continues, the remaining cab files will be downloaded on an as needed basis. All of this happens without specific end-user action, they will see a progress bar for the download status.
In addition, the developer can choose to create certificates for the application components (cabinet files) - you can digitally sign each cabinet file to be downloaded requiring the end-user to verify the digital signature of each cabinet file downloaded.
However, instead of running an installation procedure clicking on the web page will result in the download of some subset of the cab that are stored on the delivery server. Dependent on the download mode defined, only those cab files that contain the r code needed to start the application will be downloaded. As execution of the application continues, the remaining cab files will be downloaded on an as needed basis. All of this happens without specific end-user action, they will see a progress bar for the download status.
In addition, the developer can choose to create certificates for the application components (cabinet files) - you can digitally sign each cabinet file to be downloaded requiring the end-user to verify the digital signature of each cabinet file downloaded.
16. DEV-7: Ease your Deployment Woes with OpenEdge WebClient OpenEdge WebClient Introduction to WebClient
WebClient in Action
Is WebClient for you?
WebClient Architecture
WebClient Putting it all Together
Summary Its not Magic!
Where To Go for More Info
17. DEV-7: Ease your Deployment Woes with OpenEdge WebClient OpenEdge WebClient Architecture Logical Servers required for deployment
Intelligent WebClient
WebClient can install initial application component
WebClient can install updates when available
Download from Application Delivery Server
Web Server
File Server
AppServer
No need to download complete application
Application components installed as needed
Faster, smaller, more frequent, regular updates
WebClient detects tampering between Application Delivery Server and the client host
User knows where application came from
Test Certificate can be generated
CAB files can be signed
Developer uses a digital certificate
Logical Servers required for deployment
Intelligent WebClient
WebClient can install initial application component
WebClient can install updates when available
Download from Application Delivery Server
Web Server
File Server
AppServer
No need to download complete application
Application components installed as needed
Faster, smaller, more frequent, regular updates
WebClient detects tampering between Application Delivery Server and the client host
User knows where application came from
Test Certificate can be generated
CAB files can be signed
Developer uses a digital certificate
18. DEV-7: Ease your Deployment Woes with OpenEdge WebClient Who does What? Application Developer/Deployer
Separates Application components
Server & Client
Packages Client components
Generates Application Configuration File
Copies to Application Delivery Server
Application User
Downloads* WebClient & Client Components
Runs Application Application, the application to be deployed and accessed with WebClient.
WebClient Executable (prowc.exe), the WebClient main executable, responsible for running the application on the users machine.
WebClient Initializer (prowcini.exe), program responsible for coordinating the installation and execution of a WebClient application. The Initializer is installed with WebClient.
WebClient Application Assembler (prowcappmgr.exe), utility used to define the application to WebClient and to package the front end of the application for downloading.
WebClient Deployment Packager (contained within prowcappmgr.exe), A utility used to modify the deployment configuration for an application.
WebClient Application Manager (prowcam.exe), utility for customizing and troubleshooting your WebClient applications on the end users machine. It is typically used when the end user talks with your technical support staff.
Application Configuration (.prowcapp) file, configuration file created by the WebClient Application Assembler and downloaded to the end users machine at the initial download and each time the end user starts the application. This file provides WebClient with all the information it needs to know about the application.
WebClient Project (.wcp) file, file that contains the WebClient application install definition for the latest version of an application. Note: In Windows Explorer, if you double-click on a project file, the WebClient Application Assembler starts and opens that project definition. prowcapc file is a CAB file of the original prowcapp file, containing your deployment info. The .wcp file is where the application manager stores the application information. Don't change the contents of these files. Another file, the .wcd file for the WebClient Deployment Packager is the one to customize your deployment for a particular site.
Microsoft Cabinet (.cab) files, files into which the procedure files, image files, etc., that make up the front end of the application are placed to prepare them for downloading to the end users machine. Microsoft Authenticode Technology, software that creates and validates digital signatures. Test-certificate generator (maketestcert.bat), batch file that simplifies creating test public-key certificates used for testing digitally signed applications.
Application, the application to be deployed and accessed with WebClient.
WebClient Executable (prowc.exe), the WebClient main executable, responsible for running the application on the users machine.
WebClient Initializer (prowcini.exe), program responsible for coordinating the installation and execution of a WebClient application. The Initializer is installed with WebClient.
WebClient Application Assembler (prowcappmgr.exe), utility used to define the application to WebClient and to package the front end of the application for downloading.
WebClient Deployment Packager (contained within prowcappmgr.exe), A utility used to modify the deployment configuration for an application.
WebClient Application Manager (prowcam.exe), utility for customizing and troubleshooting your WebClient applications on the end users machine. It is typically used when the end user talks with your technical support staff.
Application Configuration (.prowcapp) file, configuration file created by the WebClient Application Assembler and downloaded to the end users machine at the initial download and each time the end user starts the application. This file provides WebClient with all the information it needs to know about the application.
WebClient Project (.wcp) file, file that contains the WebClient application install definition for the latest version of an application. Note: In Windows Explorer, if you double-click on a project file, the WebClient Application Assembler starts and opens that project definition. prowcapc file is a CAB file of the original prowcapp file, containing your deployment info. The .wcp file is where the application manager stores the application information. Don't change the contents of these files. Another file, the .wcd file for the WebClient Deployment Packager is the one to customize your deployment for a particular site.
Microsoft Cabinet (.cab) files, files into which the procedure files, image files, etc., that make up the front end of the application are placed to prepare them for downloading to the end users machine. Microsoft Authenticode Technology, software that creates and validates digital signatures. Test-certificate generator (maketestcert.bat), batch file that simplifies creating test public-key certificates used for testing digitally signed applications.
19. DEV-7: Ease your Deployment Woes with OpenEdge WebClient OpenEdge WebClient Architecture Application Delivery Server
Web Server
File Server
AppServer
No need to download complete application
Client components installed as needed
Remotely
Faster
Smaller
More frequent, regular updates
Just like with the install model provided in 9.1b, with IntelliStream, each time the app is run, WebClient will check for updates. However, instead of directing the end-user to a browser, the WebClient can automatically download just the r-code files that need to be updated. Even with r-code stored in a procedure library in the cab files, only the modified r-code will be downloaded
So what are the benefits of WebClient IntelliStream?
Your r-code can automatically be downloaded from an AppServer or a WebServer. Download is transparent and incremental, and can be on an as needed basis. Updates are also transparent and incremental. These two taken together mean that the time that it takes to initially start the application as well as the time that it takes to update the application could be faster than using the install-based model provided in 9.1B. Lastly, you dont need to buy, learn, or deploy InstallShield.
In addition, you can optimize application deployment performance by specifying Yes for the Generate MD-5 option of the Application Compiler or using the GENERATE-MD5 option on the COMPILE statement. We strongly recommend this option. When specified, this generates an MD5 message digest, a fixed length value that is unique for the exact contents of a given source code file. If the source code of the procedure changes, compiling the file with this option generates a different message digest value. The compiler then inserts this message digest value in the generated r-code. When you later deploy a new version of your application using the WebClient Application Assembler, the Assembler uses a series of criteria to determine if a given procedure file requires an update at existing client sites, as follows:
1. If the old and new versions of the procedure file both contain an MD5 message digest, the Assembler compares the two MD5 values. If they are different, the Assembler marks the new file as an update.
2. If neither file contains MD5 values, the Assembler compares the date and size information for each file. If they are different, the Assembler marks the new file as an update.
3. If one file contains an MD5 value and the other contains only date and size information, the two files cannot be otherwise compared. So, the Assembler assumes that the new file has changed and marks it as an update of the old file.
The MD5 value is the first, fastest, and most precise mechanism that the Application Assembler can use to compare the old and new procedure files of an application. Using this value will enhance the performance of application assembly and deployment.
Just like with the install model provided in 9.1b, with IntelliStream, each time the app is run, WebClient will check for updates. However, instead of directing the end-user to a browser, the WebClient can automatically download just the r-code files that need to be updated. Even with r-code stored in a procedure library in the cab files, only the modified r-code will be downloaded
So what are the benefits of WebClient IntelliStream?
Your r-code can automatically be downloaded from an AppServer or a WebServer. Download is transparent and incremental, and can be on an as needed basis. Updates are also transparent and incremental. These two taken together mean that the time that it takes to initially start the application as well as the time that it takes to update the application could be faster than using the install-based model provided in 9.1B. Lastly, you dont need to buy, learn, or deploy InstallShield.
In addition, you can optimize application deployment performance by specifying Yes for the Generate MD-5 option of the Application Compiler or using the GENERATE-MD5 option on the COMPILE statement. We strongly recommend this option. When specified, this generates an MD5 message digest, a fixed length value that is unique for the exact contents of a given source code file. If the source code of the procedure changes, compiling the file with this option generates a different message digest value. The compiler then inserts this message digest value in the generated r-code. When you later deploy a new version of your application using the WebClient Application Assembler, the Assembler uses a series of criteria to determine if a given procedure file requires an update at existing client sites, as follows:
1. If the old and new versions of the procedure file both contain an MD5 message digest, the Assembler compares the two MD5 values. If they are different, the Assembler marks the new file as an update.
2. If neither file contains MD5 values, the Assembler compares the date and size information for each file. If they are different, the Assembler marks the new file as an update.
3. If one file contains an MD5 value and the other contains only date and size information, the two files cannot be otherwise compared. So, the Assembler assumes that the new file has changed and marks it as an update of the old file.
The MD5 value is the first, fastest, and most precise mechanism that the Application Assembler can use to compare the old and new procedure files of an application. Using this value will enhance the performance of application assembly and deployment.
20. DEV-7: Ease your Deployment Woes with OpenEdge WebClient OpenEdge WebClient Architecture Logical Servers required for deployment, you choose how to deploy and what servers to configure.Logical Servers required for deployment, you choose how to deploy and what servers to configure.
21. DEV-7: Ease your Deployment Woes with OpenEdge WebClient WebClient Application Bootstrap HTML file
WebClient Installation
Application Installer runs
e.g. InstallShield
Application runs
WebClient Initializer
Checks Config file (PROWCAPP) for updates
The WebClient Application Assembler is used to package the application for deployment and includes the utilities that the developer will need removing the need for a 3rd party installer such as InstallShield.
The WebClient Application Assembler is used to package the application for deployment and includes the utilities that the developer will need removing the need for a 3rd party installer such as InstallShield.
22. DEV-7: Ease your Deployment Woes with OpenEdge WebClient Bootstrapping a WebClient Application The WebClient Initializer is a program that controls the installation, update, and execution of a WebClient application that can also include installing a different version of WebClient itself. The WebClient Initializer uses information in an application configuration file to control how it starts the application. The information that you provide in this application configuration file allows the initializer to identify and verify the status of both WebClient and the application on the users system, and to start the application.
This file can be customized, but by default the user is taken to a Web page to install WebClient, if not already installed. However if it is already installed, WebClient Initializer runs and performs the following tasks:
Checks that an acceptable version of WebClient is installed on the users system and
gives the user an opportunity to update the version of the WebClient installation
Checks whether the application is installed on the users system and gives the user an
opportunity to install it
Checks whether any application updates are required and gives the user an
opportunity to update the application
Starts the application.
Whenever WebClient Initializer runs, it takes users to the next step of the bootstrapping process. Therefore, any process to which WebClient initializer gives control to perform an installation step (WebClient install and external application install) needs to run WebClient Initializer again for the bootstrapping process to continue and ultimately run the application.
Looks complicated, but the process is transparent to the user, and depends on whether you used IntelliStream or an external installer and how you customized your WebClient installation to install and start your application.
Only 3 steps are visible to the Application User
Run bootstrap file - Run Initializer - Run Appication The WebClient Initializer is a program that controls the installation, update, and execution of a WebClient application that can also include installing a different version of WebClient itself. The WebClient Initializer uses information in an application configuration file to control how it starts the application. The information that you provide in this application configuration file allows the initializer to identify and verify the status of both WebClient and the application on the users system, and to start the application.
This file can be customized, but by default the user is taken to a Web page to install WebClient, if not already installed. However if it is already installed, WebClient Initializer runs and performs the following tasks:
Checks that an acceptable version of WebClient is installed on the users system and
gives the user an opportunity to update the version of the WebClient installation
Checks whether the application is installed on the users system and gives the user an
opportunity to install it
Checks whether any application updates are required and gives the user an
opportunity to update the application
Starts the application.
Whenever WebClient Initializer runs, it takes users to the next step of the bootstrapping process. Therefore, any process to which WebClient initializer gives control to perform an installation step (WebClient install and external application install) needs to run WebClient Initializer again for the bootstrapping process to continue and ultimately run the application.
Looks complicated, but the process is transparent to the user, and depends on whether you used IntelliStream or an external installer and how you customized your WebClient installation to install and start your application.
Only 3 steps are visible to the Application User
Run bootstrap file - Run Initializer - Run Appication
23. DEV-7: Ease your Deployment Woes with OpenEdge WebClient OpenEdge WebClient Introduction to WebClient
WebClient in Action
Is WebClient for you?
WebClient Architecture
WebClient Putting it all Together
Summary Its not Magic!
Where To Go for More Info
24. DEV-7: Ease your Deployment Woes with OpenEdge WebClient Putting it all Together Configuration of servers
WebClient installation
Application installation & updates
Which download mode for Client components?
At Startup
As Needed
As Requested (ask user at startup)
Security
Digital Certificates
User IDs & passwords
Security caching single sign-on
To download the files of the client portion of the application, WebClient places them in MS CAB files. Typically, a single cabinet file might contain several procedure (.r) files, image files, etc. A single cabinet file comprises an application component. Components are essential to taking advantage of the IntelliStream feature. Components are collections of one or more files grouped together based on related functionality, and are put into a .CAB file that is compressed. Components should be self contained so that all procedures that call each other are together. If you have a procedure that is called from many parts of the code, you might want to include this procedure in the At Startup component.
The appl deployer assigns each application component one of the following download modes:
At startup The component is included in the initial download.
As needed The component is automatically downloaded by WebClient when the end-user uses the part of the application that references it.
As requested At the time of the initial download, WebClient asks the end-user which as-requested components they want. WebClient then downloads them. This allows the user to determine when to download the application files.
Security Considerations
Does application need to be digitally signed?
Application can be signed
Application Provider needs a digital certificate
WebClient detects tampering
Between Application Delivery Server & User
User knows where application came from
Test Certificate can be generated
To download the files of the client portion of the application, WebClient places them in MS CAB files. Typically, a single cabinet file might contain several procedure (.r) files, image files, etc. A single cabinet file comprises an application component. Components are essential to taking advantage of the IntelliStream feature. Components are collections of one or more files grouped together based on related functionality, and are put into a .CAB file that is compressed. Components should be self contained so that all procedures that call each other are together. If you have a procedure that is called from many parts of the code, you might want to include this procedure in the At Startup component.
The appl deployer assigns each application component one of the following download modes:
At startup The component is included in the initial download.
As needed The component is automatically downloaded by WebClient when the end-user uses the part of the application that references it.
As requested At the time of the initial download, WebClient asks the end-user which as-requested components they want. WebClient then downloads them. This allows the user to determine when to download the application files.
Security Considerations
Does application need to be digitally signed?
Application can be signed
Application Provider needs a digital certificate
WebClient detects tampering
Between Application Delivery Server & User
User knows where application came from
Test Certificate can be generated
25. DEV-7: Ease your Deployment Woes with OpenEdge WebClient WebClient Installation Options Media
CD or DVD
Remote
Server
Mixed Mode
Combination of Media and Server
IntelliStream for Updates
26. DEV-7: Ease your Deployment Woes with OpenEdge WebClient Putting it all Together With the application code ready for deployment, the developer needs to package the application this will include:
Compiling the sources (recommended to use the MD-5 option)
Defining components
Generating the package of files for download.
With the application code ready for deployment, the developer needs to package the application this will include:
Compiling the sources (recommended to use the MD-5 option)
Defining components
Generating the package of files for download.
27. DEV-7: Ease your Deployment Woes with OpenEdge WebClient WebClient Application Assembler Create and/or Update a project
Generate package of files for deployment
Configuration File
Version File
Client Component Files
Client Component Update Files The WCAA (WebClient Application Assembler) is used to package the application for deployment and includes the utilities that the developer will need removing the need for a 3rd party installer such as InstallShield.
The WCAA (WebClient Application Assembler) is used to package the application for deployment and includes the utilities that the developer will need removing the need for a 3rd party installer such as InstallShield.
28. DEV-7: Ease your Deployment Woes with OpenEdge WebClient Putting it all Together WebClient Deployment Packager
Customize configuration file per environment
Run from either
PRO*Tools
<dlc>\bin\prowcappmgr.exe -deploy
All WebClient application configuration information is stored in the WebClient Application Configuration file, or prowcapp file. Since 9.1C, the WCAA packages the prowcapp file into a CAB file, with a .prowcapc extension.
The WCDP (WebClient Deployment Packager) allows you generate customized prowcapc files for each of your deployments, it also allows you to manually customize existing prowcapc files location information. This allows users to deploy their WebClient application in locations different to those defined when the application was packaged with the WCAA.
The WCDP uses the information in the custom deployment configuration to generate a modified prowcapp file within a prowcapc file. The WCDP stores the custom deployment configuration in a .wcd file. The WCDP can create a new .wcd file for a new custom deployment configuration, and load an existing custom deployment configuration from a .wcd file.
Who and when might use the WCDP? Typically used by Application Partners who ususaly define application configuration information based on their expected deployment environment. However, when they actually come to deploy the application at a customer site the configuration may have changed/not be as the AP initially expected. For example, the customer's internal policies may dictate that they host the application on certain URLs, which the AP had no prior knowledge of, and consequently did not include in the application configuration information.
In order to deploy the WebClient application, the AP needs to be able to modify the application's configuration manually. The configuration information is stored in the prowcapc CAB file (which may also be digitally signed), and which contains the prowcapp WebClient configuration details.
All WebClient application configuration information is stored in the WebClient Application Configuration file, or prowcapp file. Since 9.1C, the WCAA packages the prowcapp file into a CAB file, with a .prowcapc extension.
The WCDP (WebClient Deployment Packager) allows you generate customized prowcapc files for each of your deployments, it also allows you to manually customize existing prowcapc files location information. This allows users to deploy their WebClient application in locations different to those defined when the application was packaged with the WCAA.
The WCDP uses the information in the custom deployment configuration to generate a modified prowcapp file within a prowcapc file. The WCDP stores the custom deployment configuration in a .wcd file. The WCDP can create a new .wcd file for a new custom deployment configuration, and load an existing custom deployment configuration from a .wcd file.
Who and when might use the WCDP? Typically used by Application Partners who ususaly define application configuration information based on their expected deployment environment. However, when they actually come to deploy the application at a customer site the configuration may have changed/not be as the AP initially expected. For example, the customer's internal policies may dictate that they host the application on certain URLs, which the AP had no prior knowledge of, and consequently did not include in the application configuration information.
In order to deploy the WebClient application, the AP needs to be able to modify the application's configuration manually. The configuration information is stored in the prowcapc CAB file (which may also be digitally signed), and which contains the prowcapp WebClient configuration details.
29. DEV-7: Ease your Deployment Woes with OpenEdge WebClient WebClient Deployment Packager Application Name
URL for
WebClient Install
Configuration File
Codebase
External Installer
Digital Signature Info The WCDP is part of prowcappmgr.exe, the existing WebClient Application Assembler executable. Functionality for both tools is in the one executable.
In GUI mode, the WCDP can be invoked from Pro*Tools. A new button has been added to the Pro*Tools palette for the WCDP.
Alternatively, it may be invoked by executing prowcappmgr.exe -deploy from the command line.
The WCDP is able to read an existing source, prowcapc file and output a modified version to a user specified directory. Using File->New creates a new Custom Deployment Configuration from an existing prowcapc file. The following can be modified within a prowcapp file:
- Application Name
- Application Startup Parameters
WebClient Install URL
- This is the URL the WebClient Initialiser uses to install WebClient upgrades.
- Configuration File Locator Definition - This defines information that the WebClient Initialiser uses to access the prowcapc file.
- Codebase Locator Definition - This defines information that WebClient uses to access the application code.
Web-enabled External Installer - this defines information about programs the AP has developed to perform the application installation, instead of using the default WebClient installation.
The WCDP is part of prowcappmgr.exe, the existing WebClient Application Assembler executable. Functionality for both tools is in the one executable.
In GUI mode, the WCDP can be invoked from Pro*Tools. A new button has been added to the Pro*Tools palette for the WCDP.
Alternatively, it may be invoked by executing prowcappmgr.exe -deploy from the command line.
The WCDP is able to read an existing source, prowcapc file and output a modified version to a user specified directory. Using File->New creates a new Custom Deployment Configuration from an existing prowcapc file. The following can be modified within a prowcapp file:
- Application Name
- Application Startup Parameters
WebClient Install URL
- This is the URL the WebClient Initialiser uses to install WebClient upgrades.
- Configuration File Locator Definition - This defines information that the WebClient Initialiser uses to access the prowcapc file.
- Codebase Locator Definition - This defines information that WebClient uses to access the application code.
Web-enabled External Installer - this defines information about programs the AP has developed to perform the application installation, instead of using the default WebClient installation.
30. DEV-7: Ease your Deployment Woes with OpenEdge WebClient WebClient Application Manager View WebClient versions
Edit Application Directory
Edit Proxy Server
View Applications
The WCAM (WebClient Application Manager) allows your users to configure and manage their use of a WebClient application and to provide information that you can use for troubleshooting (config, log files etc). This should only be used when directed by the Application Provider, usually for the following reasons:
To specify post-installation WebClient startup parameters.
To specify proxy server host and port for the users firewall.
To access information such as the WebClient Initializer log file and the system registry settings to help you to debug any installation problems.
The WCAM can be installed as part of the WebClient installation, and although it is part of most current WC installation, it can be used to display information about all WebClient applications installed on a users machine.
The WCAM (WebClient Application Manager) allows your users to configure and manage their use of a WebClient application and to provide information that you can use for troubleshooting (config, log files etc). This should only be used when directed by the Application Provider, usually for the following reasons:
To specify post-installation WebClient startup parameters.
To specify proxy server host and port for the users firewall.
To access information such as the WebClient Initializer log file and the system registry settings to help you to debug any installation problems.
The WCAM can be installed as part of the WebClient installation, and although it is part of most current WC installation, it can be used to display information about all WebClient applications installed on a users machine.
31. DEV-7: Ease your Deployment Woes with OpenEdge WebClient WebClient Application Manager General Configuration
Log
View
Clear
Security
Signed/Not Signed
Config File Cached
Codebase Cached
Component
Installed on Client
32. DEV-7: Ease your Deployment Woes with OpenEdge WebClient Automating Application Updates We have stepped through the process and the various tools available to deploy an application for WebClient
.
Here you can see that with just a couple of scripts you could automate this and simplify handling updates
We have stepped through the process and the various tools available to deploy an application for WebClient
.
Here you can see that with just a couple of scripts you could automate this and simplify handling updates
33. DEV-7: Ease your Deployment Woes with OpenEdge WebClient OpenEdge WebClient Introduction to WebClient
WebClient in Action
Is WebClient for you?
WebClient Architecture
WebClient Putting it all Together
Summary Its not Magic!
Where To Go for More Info
34. DEV-7: Ease your Deployment Woes with OpenEdge WebClient Benefits of WebClient Application User Hopefully you now see that you can guarantee your users all running the same version of code without you running around installing updates everywhere ? Got a change to make? Then make the change, compile the code and put on the server - the next time the users start the application they will pick up the changes - no its not magic, but WebClient !
Its not magic - it just looks like it!
Hopefully you now see that you can guarantee your users all running the same version of code without you running around installing updates everywhere ? Got a change to make? Then make the change, compile the code and put on the server - the next time the users start the application they will pick up the changes - no its not magic, but WebClient !
Its not magic - it just looks like it!
35. DEV-7: Ease your Deployment Woes with OpenEdge WebClient In Summary Its not Magic! Application requirements
Version 9.1B, or later
Progress OpenEdge Windows Interface
Partitioned Application
Database calls through the AppServer
So if you have developed your application partitioned for AppServer, with no direct Database calls you can use WebClient TODAY
Not there yet?
So if you have developed your application partitioned for AppServer, with no direct Database calls you can use WebClient TODAY
Not there yet?
36. DEV-7: Ease your Deployment Woes with OpenEdge WebClient Supported Configurations
37. DEV-7: Ease your Deployment Woes with OpenEdge WebClient OpenEdge WebClient Introduction to WebClient
WebClient in Action
Is WebClient for you?
WebClient Architecture
WebClient Putting it all Together
Summary Its not Magic!
Where To Go for More Info
38. DEV-7: Ease your Deployment Woes with OpenEdge WebClient PSDN
White Papers & Presentations
Education & Documentation
Developing & Deploying WebClient Applications
OpenEdge Deployment: WebClient Applications
OpenEdge AppServer: Developing AppServer Applications
Relevant Exchange Sessions
ARCH-4: The Presentation Layer in the OERA
SOA-5: Accessing the AppServer from Anywhere & Everywhere
SOA-13: Advanced AppServer Topics
MOVE-5: Separating Interface from Logic For More Information, go to
39. DEV-7: Ease your Deployment Woes with OpenEdge WebClient
40. DEV-7: Ease your Deployment Woes with OpenEdge WebClient
41. DEV-7: Ease your Deployment Woes with OpenEdge WebClient