1 / 40

DEV-7: Ease your Deployment Woes with OpenEdge WebClient - Its not Magic

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! .

manuela
Download Presentation

DEV-7: Ease your Deployment Woes with OpenEdge WebClient - Its not Magic

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


    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. It’s 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 – It’s 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 We’ll take a look at the architecture and components, explaining how it all hangs together! We’ll 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 We’ll take a look at the architecture and components, explaining how it all hangs together! We’ll 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-user’s 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 it’s 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-user’s 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 it’s 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 CD’s 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 CD’s 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 – It’s 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 – It’s 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 user’s 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 – It’s 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 user’s 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 user’s 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 user’s 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 user’s 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 user’s 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 user’s 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 user’s 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 user’s 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 don’t 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 don’t 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 user’s 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 user’s system and gives the user an opportunity to update the version of the WebClient installation – Checks whether the application is installed on the user’s 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 user’s 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 user’s system and gives the user an opportunity to update the version of the WebClient installation – Checks whether the application is installed on the user’s 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 – It’s 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 user’s 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 user’s 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 user’s 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 user’s 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 – It’s 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 – It’s 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 – It’s 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 

More Related