Reputation: 707
After a business merger, my client wants to unify his IT landscape. One legacy application to join is based on PowerBuilder 11.5 classic.
If possible, the complex business logic and database model should stay, but the applicantion should become callable from some kind of web service. The GUI actions should be reimplementad as web service calls (e.g. get me all objects, edit this one, delete that, etc.).
Given the application would have been already ported to PowerBuilder.net, I would suggest to create a REST service. Is there anything similar possible for PowerBuilder classic?
Note: I have been assigned to manage the merger, but have no experience in PowerBuilder.
Upvotes: 0
Views: 1045
Reputation: 620
Of course this can be done - but there's no "magic button" that refactors your PB code GUI into non-visual classes (aka NVO's) that can then be exposed as web services... Somebody is going to have to roll up their sleeves and do some PB coding.
For example, let's say a window in your app has a button called "GetData", and it executes a datawindow retrieval in its clicked event. There's no way to have a web service call click that button. You have to move the business and data layer logic out of the UI layer.
One approach would be to refactor that datawindow into a non-visual user object. Create a public method or function that takes in the retrieval arguments. The method would have to connect to the database backend through a pooled connection, instantiate a datastore class, bind it to the connected transaction object, and perform the Retrieve() call. Then you'd marshall the result set row-by-row, field-by-field into a defined structure variable, which would the return value of the public method.
Then you expose that single NVO as a .NET webservice in IIS. The only real "shared code" between your existing PB app and the webservice NVO would be that single datawindow object.
Upvotes: 1