5 Replies Latest reply on May 14, 2019 1:58 PM by Frank Hoffmann

    Best practise to run Forms on a Cloud Windows Server with shared network drives

    Frank Hoffmann

      Hi All,

       

      I am planning to offer all my customers a move into the Oracle Cloud. Because the Forms Software of my customers usually needs to  upload and download large documents and webutil is restricted to download small pieces I have in mind to extend the https connection to the formsserver with an SFTP networkdrive connection. So with this trick Forms would work completly locally for up/downloads(text_io/host). Another reason is that client_text_io will do a networkroundtrip for every line oft text – SFTP will be much faster with transferring the document.

       

      Architecture example:

      Server:

      M:\forms\runtime\docs (server)

       

      Client

      M:\forms\runtime\docs (netdrive mapping of M to the Cloud Formsserver)

       

      Example:

      1.

      Forms downloads a document on the server from the db (text_io/webutil): M:\forms\runtime\docs\my_doc.html

      2.

      Webutil starts with client_host the Editor on the client: example: Winword “M:\forms\runtime\docs\my_doc.html“

      3.

      After the user has changed the document on the client Forms uploads the document again on the server(text_io): M:\forms\runtime\docs\my_doc.html

       

      So Forms in the Cloud and the Applet will share the same directories for Up- and Downloads. Forms in the cloud and Forms as Standalonebuilder locally will share the same working directories too.

       

      Server extra work:

      With this little extension I have an extra work to install a SFTP Server on a windows Server  because Windows2012/2016 only allows FTPS for a secure NetDrive mapping and this will open too many port to he Internet. But a direct access to the Formsserver runtime directories is a huge benefit.

       

      Client extra work:

      On the client I would install for the developer a standalone builder and for the users a MSI for the Java archive with a Forms starting program.
      Another requirement would be the software like "NetDrive" to offer SFTP as real network drive in windows. Client and Server will work then on the same directory.

       

      Do you think my plan makes sense? Using SFTP and netdrive? Do you see problems? Or do you have better ideas? Has any one production experience with this?

      Every Suggestion, hint or proposal is very welcome.

       

      Frank

        • 1. Re: Best practise to run Forms on a Cloud Windows Server with shared network drives
          Walid KHARRAT

          Hi Frank,

          in my case when i deal with text files i don't use webutil. i think webutil use the forms servlet to transfert files or line of file(client_text_io) and this is not the primary job of servlet forms to round trip on every line when there's a loop on text file. i use nginx with a tomcat servlet upload. a pjc in client open the filechooser with awt (more user friendly) and when the file is choosen the pjc zip the file( very important this devide the size of text file per 10) and upload the file to the server. The servlet upload in tomcat dezip the file on folder that can be accessed by forms. My clients can deal a text file that have tens MO of size and they load them in traditional way with forms and text_io. So in migration projects from client/server to web i use pjc and servlet upload or pjc to download an store in client. In the case of download the nginx can zip the stream on the fly.

          1 person found this helpful
          • 2. Re: Best practise to run Forms on a Cloud Windows Server with shared network drives
            Michael Ferrante-Oracle

            Frank,

             

            I don't know if creating net shares on a Cloud environment is such a good idea.  Further, maybe Forms isn't the right tool for the job, at least for the part where a user is updating an MS Word doc.  Have you looked at Oracle Content Cloud?  Maybe you can integrate the two.

             

            https://cloud.oracle.com/en_US/content/features

             

            Alternatively, you use WebUtil as it is then plan to move to a newer version in the future, where we are planning to improve the up/down performance of WebUtil by as much as 33%.

            1 person found this helpful
            • 3. Re: Best practise to run Forms on a Cloud Windows Server with shared network drives
              Frank Hoffmann

              Walid,

              this sounds like an interesting solution. Zip and Upload would be great.

               

              >a pjc in client open the filechooser with awt (more user friendly) and when the file is choosen the pjc zip the file( very important this devide the size of text file per 10) and upload the file to the server

              How is the upload in the PJC done? By HTTPS/FTP/SFTP/FTPS? Do you have a Code example?

               

              Frank

              • 4. Re: Best practise to run Forms on a Cloud Windows Server with shared network drives
                Walid KHARRAT

                Frank,

                this is a method called from forms :

                 public String zipAndUpload(String sourceName, String destinationName, String urlUpload) {
                
                        //String sFile = "";
                        try {
                            File temp = new File("c:\\temp");
                            File source = new File(sourceName);
                            File dest = new File(destinationName);
                
                            if (!(temp.exists())) {
                                temp.mkdir();
                
                            }
                            dest.deleteOnExit();
                            ZipUtils zipUtils = new ZipUtils();
                
                            zipUtils.zipOneFile(sourceName, destinationName);
                            zipUtils.uploadZip(destinationName, urlUpload);
                            dest.deleteOnExit();
                            return "OK";
                        } catch (Exception e) {
                            log(e.getMessage());
                            return "problem";
                        }
                
                        //sFile = fd.getDirectory() + System.getProperty("file.separator") + fd.getFile();
                    }
                

                after a method to choose a file there's a pll to call them, and pass a random(dbms_random) to name the zip. after the zip is uploaded forms access to the file with static path (temp diredtory) + the random (name of folder after dezzip) + the name of file (from the method of choose...).

                its'nt clear in a narrative style my skype: walid_kharrat mail walid.kharrat@gmail.com if you need more details.

                1 person found this helpful