1 / 23

EAS305: Integrating Business Logic with EAServer

EAS305: Integrating Business Logic with EAServer. Brad Ashton Systems Analyst, The Greenbrier Companies brad.ashton@gbrx.com Tuesday, August 17 th , 2004, 4:00 p.m. Integrating Business Logic with EAServer. Who currently uses EAServer? What versions? Who uses other middle-tier servers?

mai
Download Presentation

EAS305: Integrating Business Logic with EAServer

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. EAS305: Integrating Business Logic with EAServer Brad Ashton Systems Analyst, The Greenbrier Companies brad.ashton@gbrx.com Tuesday, August 17th, 2004, 4:00 p.m.

  2. Integrating Business Logic with EAServer • Who currently uses EAServer? • What versions? • Who uses other middle-tier servers? • Who deploys PowerBuilder? • Who deploys Java? • Any other technologies - C, ActiveX? • What types of user interfaces - PowerBuilder, JSPs, other?

  3. Why Integrate Business Logic? • Common business logic is needed within the confines of several applications • Those applications could be in different programming languages (PowerBuilder and Java) • Those applications could have different user interfaces (Windows GUI and HTML) • You do not want to replicate code and logic across these separate application • A common place must be found to pool and integrate this logic that can be as neutral as possible and callable by the various applications

  4. Wish List • In 2001, The Greenbrier Companies, Inc., wanted to: • Re-use existing PowerBuilder NVOs developed in various client/server applications • Take advantage of in-house PowerBuilder developers • Use other languages to compliment PowerBuilder’s capabilities where it would be advantageous to use them • Take advantage of built-in application server functionality, such as multi-threading, database connection pooling, pooled objects, etc • Have the choice of using a feature-rich Windows GUI and/or client-neutral Web browser • Have all these components communicate as seamlessly as possible, and with as little work as possible, to develop as rapidly as possible • Reuse existing and future business logic

  5. A Quick Introduction to Greenbrier • Headquartered in Lake Oswego, Oregon, near Portland • Supplier of transportation equipment and services to the railroad industry in North America and Europe • By the numbers: • Annual revenues of $435 million • Total assets of $539 million • 2500 employees • Two main business lines • Manufacturing • Leasing and services

  6. A Quick Introduction to Greenbrier • Build new railroad freight cars in the U.S., Canada, Mexico and Poland • Market new railroad freight cars throughout North America and Europe • Repair and refurbish freight cars and wheels at repair shops across North America • Build ocean-going barges for the maritime industry at its Portland, Oregon manufacturing facility • Manage a fleet of approximately 125,000 railcars in North America • 113,000 for third parties • 12,000 Greenbrier fleet

  7. Unique Problems • Very small number of companies in the industry • Some off the shelf software available • Accounting • Electronic document storage • Customer Relationship Management (CRM) • Documents and letters (Microsoft Word) • Other (Microsoft Excel, Access) • Manufacturing plants are independent, and run packaged CNC (Computerized Numerical Control) software for specialized steel cutting machines • No packaged software for our leasing and services business, so software has to be developed in-house

  8. Tasks to Complete • Greenbrier needed to get to the Web without abandoning existing Client/Server applications • In 2001, only static electronic pamphlets were on the web • No scripting or programming language, and no dynamic Web presence • A growing need to provide Web access to some aspects of the leasing and services business • Provide online reporting to clients • Import large, unconventionally formatted text files • Act as a Web intermediary for ordering wheelsets between Greenbrier refurbishment shops and a client • Link to a third party track-&-trace Web site • Use PowerBuilder Windows GUIs to monitor and set up Web users, etc. • Greenbrier chose EAServer to integrate their systems

  9. Web Security • EAServer security turned out to be the first point of integrating business logic for Greenbrier • Greenbrier investigated the various types of Web security • Settled on using FORM based security with JSPs • Built a custom authentication object using the CtsSecurity.SessionInfo interface to validate user logins from a database table • Further security is enforced using EAServer Roles on objects and methods • All this was integrated into a table-driven, single source login structure to which we can add additional Web modules • We have used this structure in additional applications for user restrictions

  10. Web Security • A PowerBuilder module was created to update the database tables and the EAServer roles to keep them synchronized • PowerBuilder connection to EAServer is restricted by server Role • Managers can add users and modify roles as necessary • Users can change their password through the Web at any time • Passwords are restricted: • must be at least 7 characters long • must include a mix of upper and lower case letters • must include at least one letter • must include at least one numeric digit • can not contain the user name • can not contain the phrase "password"

  11. Online Reporting • Online reporting was the second area of integration for Greenbrier • Greenbrier was printing reams of paper every month • Getting the reports online reduce cost by: • Needing less paper, toner, printer maintenance, etc. • Reducing the labor needed swapping paper in the printer, collating, stuffing envelopes and boxes, etc. • Minimizing postage and shipping • It also increases client satisfaction by: • Distributing reports faster (no lag time through snail-mail) • Allowing Greenbrier to re-post incorrect reports • Providing multiple copies to different people, who could view, save, print, etc. as necessary • Reports can be any MIME type, but is typically PDF and Excel with some text and Word

  12. PB Save to PDF/Excel Server Parses Metadata from File Name PDF MS Word (to PDF) Timed Import Word Excel EAServer Network Folder Store as BLOB w/ MetaData Database Excel Online Reporting

  13. Request for Report Menu Report Menu Request for Report HTTP Response w/ Report Retrieve MetaData Retrieve BLOB using MetaData Online Reporting Web Client Report Displays for Saving, Printing, etc. Format w/ Proper HTTP Header EAServer Database w/ Reports as BLOBs

  14. Online Wheelset Ordering • Wheelset ordering was the third area that Greenbrier integrated some business logic • Greenbrier shops refurbish car wheels and axles (wheelsets) for cars • One of our major clients wanted to automate this process • This client has a number of Field Maintenance Organizations (FMO) that order on the client’s Web site • The client Web site Web site has an ActiveX control that accepts the order and chooses the wheelset vendor closest to the FMO

  15. 5. Facility Faxes the Order Fulfillment to the Client FMO 1 Client Web & SAP Servers GB 1 FMO 2 3. Client Faxes the Order to Facility Nearest to FMO GB 2 4. Facility Ships the Wheelset Order FMO 3 1. FMO Orders Online through Client ActiveX 7. SAP System Bills FMO 8. Client EDI’s Order ID to HQ for Billing Online Wheelset Ordering – Manual 6. Client Hand-Enters Fax into SAP 2. Client Manually Generates a Fax Order

  16. Online Wheelset Ordering – Manual • The order was hand re-entered into some system by a person at least three times, meaning: • Increased processing time • Entry errors • The order was faxed at least twice • There were no checks and balances between systems to detect missed, delayed or wrong orders • Took days to complete the order in the client’s SAP system, and no order number was generated until then, so no billing could happen by the shop until after that

  17. Greenbrier EAServer FMO 1 Client Web & SAP Servers GB 1 2. Client ActiveX “Fills In” JSP Form and Passes Order 6. EAServer Sends Order Fulfillment via HTTP GET to Web & SAP FMO 2 8. Client EDI’s Order ID to HQ for Billing GB 2 5. Facility Logs On and Enters Order Fulfillment 3. GB Emails Order to Facility 4. Facility Ships the Wheelset Order FMO 3 7. SAP System Bills FMO 1. FMO Orders Online through Client ActiveX Online Wheelset Ordering – Automatic

  18. Online Wheelset Ordering – Automatic • The order is never hand re-entered into a system by a person after the FMO • No more faxes are in the process • Checks and balances were incorporated into the system, • If the shop takes > 4 hours to respond, the client SAP system emails alerts and the client can investigate what happened • The order is displayed in the browser for the shop as a double-check that they fulfilled the order correctly • It takes seconds after the fulfillment is sent to the client for their SAP system to generate the order number, so billing can take place in minutes rather than days • More accurate order fulfillment as it validates it to the order • Order history is kept for reporting and auditing

  19. Track-&-Trace • Tool to “track and trace” railcars as they roam around North America • Found a third party that already had a Web-based system • After a few modifications, their tool had everything that we wanted • A few problems to work around: • Integrated look & feel • Integrate into our single source login structure • Not have the user leave our site

  20. Track-&-Trace • Integrated look & feel through cascading style sheets • Integrate into our single source login structure by passing the username and unique user ID from our database, so that the user can still change their password in our system without having to change in the third-party database • Used frames to integrate them into our browser so the user does not have to leave our site

  21. Business Logic Integration • Greenbrier has successfully integrated its business logic using EAServer • Both PowerBuilder and Java applications use components within EAServer without any regard to what language those components are written in • These components act as a middle ground for PowerBuilder and Java applications to interact • These components can be written in different languages best suited for the logic • Data access and manipulation - PowerBuilder • File I/O or low level APIs - Java • Off the shelf - various

  22. Current Development • Updating all code to write use log4j logging API, available in EAServer 5.0 • Updating Java code to use newer Java features in: • EJB 2.0 - local interfaces and LWC (lightweight containers) • Generic EJB referencing • JDBC’s CachedRowSet • Refactoring code to consolidate copied code • Looking at using Web services to have PowerBuilder 10 communicate with EAServer rather than using the proprietary EAServer Repository API • New area based on an existing PowerBuilder application, specifically written with business logic in NVOs which could be deployed into EAServer with little effort

  23. EAS305Integrating Business Logic with EAServer Brad Ashton Systems Analyst, The Greenbrier Companies brad.ashton@gbrx.com Tuesday, August 17th, 2004, 4:00 p.m.

More Related