irui the rich client and i irui the rich client and i
play

iRUI - The Rich Client and i iRUI - The Rich Client and i Pluta - PowerPoint PPT Presentation

iRUI - The Rich Client and i iRUI - The Rich Client and i Pluta Brothers Design, Inc. Joe Pluta Agenda Who is PBD? Multi-Tiered Application Design The Tiers of a Rich Client The Messages Creating a Business Logic Library Function Creating


  1. iRUI - The Rich Client and i iRUI - The Rich Client and i Pluta Brothers Design, Inc. Joe Pluta

  2. Agenda Who is PBD? Multi-Tiered Application Design The Tiers of a Rich Client The Messages Creating a Business Logic Library Function Creating a Client Connecting to ILE Code Advanced Concepts Page 2 Pluta Brothers Design, Inc. http://www.plutabrothers.com joepluta@plutabrothers.com

  3. Who is PBD?  In business since 1998  Devoted to application modernization through industry standards using IBM tooling  Products  CPYSPLFPDF - The first commercial Java-based product for the i family  PSC/400 - The first tool to completely replace the display file with servlets and JSPs  Services  Training, mentoring, consulting  Specializing in proofs of concept Page 3 Pluta Brothers Design, Inc. http://www.plutabrothers.com joepluta@plutabrothers.com

  4. Who is PBD?  Started building open source and commercial solutions for Java-based modernization in 1999  Early adopter of Visual Age for Java, Eclipse, and WDSC ("wrote the book" on the latter two)  Started writing about EGL in 2005  Began pushing the multi-tiered EGL/RPG concept in 2006  Advocate EGL as the primary interface to the i  Gave the first hands-on lab for EGL at an i-related conference Page 4 Pluta Brothers Design, Inc. http://www.plutabrothers.com joepluta@plutabrothers.com

  5. Who is PBD?  Articles, sessions, labs  Wrote the business logic for the first public EGL application, the scheduling application for the Rational Software Developer Conference  This was a unique accomplishment, since it used the Rich UI in conjunction with an i back end  Working with a large i ISV to web enable their product line using thin client EGL to access their existing back end logic  Blog - "EGL and i" on EGL Cafe  Rich UI book coming out Real Soon Now Page 5 Pluta Brothers Design, Inc. http://www.plutabrothers.com joepluta@plutabrothers.com

  6. Multi-Tiered Application Design Multi-Tiered Applications Thick Client 5250 - The original multi-tier Thin Client (Browser Based) Multi-Tiered Rich Internet Applications Page 6 Pluta Brothers Design, Inc. http://www.plutabrothers.com joepluta@plutabrothers.com

  7. Multi-Tiered Applications User Business Interface Logic Page 7 Pluta Brothers Design, Inc. http://www.plutabrothers.com joepluta@plutabrothers.com

  8. Thick Client Applications PC Host Page 8 Pluta Brothers Design, Inc. http://www.plutabrothers.com joepluta@plutabrothers.com

  9. 5250-Based Applications i PC 5250 Business Logic / Emulation Database Page 9 Pluta Brothers Design, Inc. http://www.plutabrothers.com joepluta@plutabrothers.com

  10. Thin Client Applications (Browser-Based) i PC Business Logic / Database Browser Web Application Server Page 10 Pluta Brothers Design, Inc. http://www.plutabrothers.com joepluta@plutabrothers.com

  11. Thin Client (JSF) in EGL EGL EGL ILE JSF Page Library Business Page Handler Function Logic Page 11 Pluta Brothers Design, Inc. http://www.plutabrothers.com joepluta@plutabrothers.com

  12. Multi-Tiered Rich Internet Applications i Browser Business Logic / DOM Database (Web Page) Web JavaScript Application Interpreter Server Page 12 Pluta Brothers Design, Inc. http://www.plutabrothers.com joepluta@plutabrothers.com

  13. Rich Client with EGL Web Service EGL EGL ILE Rich UI Library Business Application Function Logic REST Service The point here is that regardless of the interface, the business logic stays the same. And with the concept of a dynamic array of records, even the EGL library function can remain the same, leaving only the interface to change, which is the ultimate goal of a UI independent application development environment. Page 13 Pluta Brothers Design, Inc. http://www.plutabrothers.com joepluta@plutabrothers.com

  14. Tiers of a Rich Client Business Logic Service Layer Rich UI Tier Between these, you have messages Page 14 Pluta Brothers Design, Inc. http://www.plutabrothers.com joepluta@plutabrothers.com

  15. Business Logic Two components First is the library function within EGL Note: not necessarily a call to ILE! It could be a call to SQL It could be a call to another service In the iRUI architecture, it is a call to an ILE program The other component of the business logic for iRUI is the code in the ILE program Page 15 Pluta Brothers Design, Inc. http://www.plutabrothers.com joepluta@plutabrothers.com

  16. Service Layer Written entirely in EGL Runs in a web application server WebSphere or Tomcat The web application server provides the infrastructure to support REST or SOAP services The web application server can run on the i or not NOTE: The EGL portion of the business logic interface also runs in the web application server Page 16 Pluta Brothers Design, Inc. http://www.plutabrothers.com joepluta@plutabrothers.com

  17. Rich UI Tier JavaScript Runs in the browser on the end user PC Responds to events from the user (keystrokes, button clicks, mouse movement) Calls logic on the host via services (REST or SOAP) Page 17 Pluta Brothers Design, Inc. http://www.plutabrothers.com joepluta@plutabrothers.com

  18. Business Logic Messaging Web Service EGL EGL ILE Rich UI Library Business Application Function Logic REST Service Flexible Records Fixed Records SOAP/REST Page 18 Pluta Brothers Design, Inc. http://www.plutabrothers.com joepluta@plutabrothers.com

  19. Fixed vs. Flexible Not a whole lot of differences Fixed records have fixed length fields Used when calling ILE Map directly to data structures Flexible records do not (especially character fields) Better between EGL layers Used to hide the complexities of service call formatting Can be translated easily to either XML or JSON Page 19 Pluta Brothers Design, Inc. http://www.plutabrothers.com joepluta@plutabrothers.com

  20. Simple vs. Composite When talking to the host, use simple fixed records These are interchangeable with data structures When passing data between layers, however, you can use more complex data structures Let's take a look how this would map out Page 20 Pluta Brothers Design, Inc. http://www.plutabrothers.com joepluta@plutabrothers.com

  21. record DSOrderHeader{} 10 OrderNumber string (10); 10 CustomerNumber decimal (6,0); 10 CustomerName string (50); 10 ShippingAddr string (50); 10 Tax money (9,2); 10 Freight money (9,2); 10 Total money (9,2); end I use the prefix DS on these record DSOrderLine{} records to indicate clearly that 10 ItemNumber string (15); they are data structures (fixed), 10 Description string (30); not flexible records. 10 Quantity decimal (9,2); 10 Price money (9,2); 10 Extended money (11,2); end Page 21 Pluta Brothers Design, Inc. http://www.plutabrothers.com joepluta@plutabrothers.com

  22. record OrderHeader{} OrderNumber string ; CustomerNumber decimal (6,0); CustomerName string ; ShippingAddr string ; Tax money (9,2); Freight money (9,2); Total money (9,2); end Note that in the flexible records record OrderLine{} strings have no lengths. Also, ItemNumber string ; we see the concept of the Description string ; Order, which is a composite. Quantity decimal (9,2); Price money (9,2); Extended money (11,2); end record Order{} Header OrderHeader; Lines OrderLine[]; end Page 22 Pluta Brothers Design, Inc. http://www.plutabrothers.com joepluta@plutabrothers.com

  23. Messaging Design Points The primary message format is flexible Composite flexible records are used between EGL functions Fixed is used only in the lowest level of the library functions to interface with the ILE programs The functions that call ILE are responsible for reformatting and packaging the simple records into composites Support may be added for "simplified" flexible records Flexible records are directly supported by the service generation pieces (SOAP and REST) Page 23 Pluta Brothers Design, Inc. http://www.plutabrothers.com joepluta@plutabrothers.com

  24. Creating the Business Logic Function Now that we've got the architecture in place, it's time to start cooking with gas First, create a dummy library function Page 24 Pluta Brothers Design, Inc. http://www.plutabrothers.com joepluta@plutabrothers.com

  25. Creating the Business Logic Function Add some logic to create a dummy record function getOrderLocal(orderNumber string in , order Order out ) returns (Error) order = new Order { Header = new OrderHeader { OrderNumber = orderNumber, CustomerNumber = 789, CustomerName = "Pluta Brothers Design, Inc.", ShippingAddr = "542 E. Cunningham, Palatine, IL, 60074", Tax = 17.19, Freight = 14.95, Total = (17.19 + 14.95 + 4.32 + 23.95 + 9.45) }, Lines = [ new OrderLine { ItemNumber = "AS-1445", Description = "Squirt Guns", Quantity = 36, Price = .12, Extended = 4.32 }, new OrderLine { ItemNumber = "IIR-7728", Description = "Wading Pool", Quantity = 1, Price = 23.95, Extended = 23.95 }, new OrderLine { ItemNumber = "IIR-7243", Description = "Metal Ladder", Quantity = 1, Price = 9.45, Extended = 9.45 } ]}; return ( null ); end Page 25 Pluta Brothers Design, Inc. http://www.plutabrothers.com joepluta@plutabrothers.com

Recommend


More recommend