EGL Development User Group

EGL Development User Group

EGL Development User Group

The EGL Development User Group is dedicated to sharing news, knowledge, and insights regarding the EGL language and Business Developer product. Consisting of IBMers, HCL, and users, this community collaborates to advance the EGL ecosystem.

 View Only
  • 1.  RBD speed issues on large projects

    Posted Wed June 29, 2016 03:35 PM

    Hi everyone,

     

    We started a few years ago reprogramming our RPG erp application built for over 30 years with RBD. I estimate we have redone about 70%, and expanded with a lot of new functionalities.

     

    We chose a simple set-up which as worked well for us, and works perfectly when deployed.

    There is one rui project for the front end, consuming web services from a single egl web service project.

    On our development machines we used tomcat for testing the web services.

     

    Basically, the proces for development looks like this

    1. Create a library to contain the database logic in the web service project
    2. Create a library to contain the business logic in the web service project (which can also b used by other libraries containing other parts of the erp application)
    3. Create a service in the web service project for exposing the required functions to the rui application
    4. Clean the project to generate the wsdd files for tomcat and to deploy the new service.
    5. Test the web service with "web services explorer"
    6. Create an interface to the service in the rui project.
    7. Create the rui application handler consuming the web services

    As the services program has grown quite large over time (+/- 150 000 lines of code), with a lot of links between the business logic libraries, it is now taking 25 minutes to do a full "clean" of our web services project.

    • Is anyone else having a similar setup?
    • Has anyone had the same issues in the past, an how did they you resolve them?
    • is the architecture database logic ->business logic -> service the best way to structure a project?

    Thanks in advance,

     

    Bram

     

    Bram_Callewaert


  • 2.  Re: RBD speed issues on large projects

    Posted Thu June 30, 2016 05:50 AM

    Hi,

    we have a created a few projects at out company using the EGL Rich UI development paltform (RBD 8.5). We have used a similar workflow and architecture as yours but we did have issues as the ones you describe which were attributed to our aging PC hardware (Windows XP Professiona SP3, AMD Athlon 64 X2 Dual Core Processor 5000+ 2.60 GHz , 3,37GB Ram).

    Since started working remotely to a server PC with Intel Xeon CPU E5-2650 v2 @ 2.60Ghz (2 processors) with 4GB Ram  running Windows 7 64-bit , the performance has improved considerably.

     

    Hope tthis helps.

     

    chp21


  • 3.  Re: RBD speed issues on large projects

    Posted Thu June 30, 2016 07:45 AM

    Hi,

    we had also some performance problems with older hardware.

    But since we have upgraded our hardware like this: Intel Core i 7-4770 3,40 GHz, 16 GB Ram and SSD disks

    we have no performance issues anymore...

     

    Kind Regards!

    Marcel-D


  • 4.  Re: RBD speed issues on large projects

    Posted Thu June 30, 2016 07:47 AM

    Thanks for sharing your experiences!

     

    Although we don't have a xeon processor for our development, our RBD machines are recent. The last one is a few months old, and has proper specifications (I7, 8gb ram, ssd, ...)

    Perhaps going over the top with hardware and purchasing cad-level workstations might squeeze another 5 minutes of the clean operation, but I feel like I must look for a solution elsewhere.

    If our application needs to grow at least another 30%, the 5 minutes profit will quickly be lost again.

     

    I might have to go down this road, and it might prove to be the cheapest solution, but for now i would like to understand the process of generating an building an egl application a little better.

     

    Do you have a local webserver running for testing the web services? 

     

    Kind regards,

     

    Bram

    Bram_Callewaert


  • 5.  Re: RBD speed issues on large projects

    Posted Thu June 30, 2016 09:36 AM

    Hi Bram,

    no we don't work with a local webserver for testing.

    Marcel-D


  • 6.  Re: RBD speed issues on large projects

    Posted Thu June 30, 2016 09:47 AM

    Do you use web services?

    If so, are they tested using java wrapper classes or an egl wrapper program?

     

    Bram_Callewaert


  • 7.  Re: RBD speed issues on large projects

    Posted Thu June 30, 2016 10:03 AM

    Hi,

    we have have a rui project which communicates through dedicated services with our egl services.

    We don't work with SOAP or Rest Services...only if it's necessary..

     

    I could create a sample project if you don't unterstand what I try to explain...(I'm not good at explaining Laughing)

     

     

     

    Marcel-D


  • 8.  Re: RBD speed issues on large projects

    Posted Fri July 01, 2016 01:57 AM

    Hi Bram,

     

    The first experience I would like to share is to minimise the number of full cleans :-)

    No seriously, why would you want to do a full clean? Except when you're putting together your application before a new implementation to be sure of a 'neat and clean' installation set.

    Do you also have the RBD preference of deleting all generated files before performing a clean, switched on?

     

    Furthermore we have the same experience here. We're having a similar environment, also using Tomcat (8) as our local webserver.

    Cleaning our projects (just the web projects, leaving the ui projects untouched) also seems to take forever (about 20 minutes). It sometimes occurs to me that, just when you think it's coming to an end, cleaning and/or regenerating starts all over again..... But not only when performing a full clean, sometimes RBD seems to decide to do a full clean and/or regeneration of our projects by itself, whilst I only have made some small alteration in a function, of which I'm sure it doesn't have any references in our web-projects (in which case I would understand RBD in performing a more comprehensive regeneration).

     

    I guess it doesn't have to do much with the structure your application is built on (yours seems quite fine by me).

    I bet you're using SOAP? Perhaps you can get a speed gain if you would switch to REST. It surely differs a lot in the quantity of code it has to clean and generate again and again;

    When using SOAP RBD re-generates wsdd and wsdl files. When also cleaning/regenerating your UI project(s) RBD will also have to regenerate all SOAP EGL Client interfaces in your Rich UI project(s) , causing all dependent RichUI code to be regenerated. When switching to REST (can be quite a comprehensive task though) you will skip the need of generating wsdd, wsdl and EGL Client interfaces, and so much less code has to be cleant and/or regenerated.

     

    Although I would not prefer in doing this you could also consider chopping up your web-projects (in some logical structure), and not performing full cleans, but just cleaning the web-project(s) you have made changes in.

    Another possibility we have been considering is using EGLAR files. Our theory is, when you put parts of your projects in EGLAR files, and reference your web project(s) to these archives, this code will not have to be regenerated in a full clean. In my opinion it would only make sense if you have code that doesn't have to be changed a lot anymore, before putting it into an archive.

    We haven't tried this yet.

     

    Kind regards,

    Guus

     

    gweis


  • 9.  Re: RBD speed issues on large projects

    Posted Fri July 01, 2016 05:14 AM

    Hi,

     

    Thanks for all the very usefull answers.

     

    @Marcel-D 185ef4e2-58bb-459d-b414-d02f00ff390d

    I've googled a bit on dedicated services and I am intrigued by the idea of running the business logic in the proxy instead of in a separate web web application.

    A small set of services is is also consumed from other applications (which have to be programmed in Java), but these could indeed be consumed as full-blown web services.

    It's a very interesting part of EGL which I did not know existed!

     

    @gweis 7e35bfd8-d64e-4c22-b431-ed51fb2f9e45

    We are indeed using soap services. The wsdl makes it easy to create a service interface in our RUI application. It is also this wsdl which is the reason we have to clean so often.

    I have not yet found a way to generate the wsdl (and the wsdd files for tomcat) without doing a full clean. If there is a way to do this manually, I would love to hear about it...

     

    I'll investigate the Rest-services a little deeper, specifically on how to easily create the interfaces in the rui project. It is something I wanted to do anyway because I heard Rest-services have a little less overhead.

     

    We are currently trying to separate the core of the application from some auxiliary functionality, with the intent to move this aux. functionality in it's own web project.

    This might shrink our main web project with about 15% and help a little with our RBD performance.

     

    I was curious about EGLAR files, but I can't find much functionality in the application which is static. I'll save that path as a last resort.

     

    Thanks for all the helpful answers. I've got some testing and investigating to do! Grin

     

    Kind regards,

     

    Bram

     

    Bram_Callewaert