Survey							
                            
		                
		                * Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Building J2EE Applications Based on Design Patterns with Business Components for Java Olivier LE DIOURIS Principal Product Manager Oracle Corporation Agenda      J2EE Overview & Challenges Design Patterns & Frameworks BC4J Overview Demo Summary What is J2EE?  Java 2 Enterprise Edition  “The J2EE application model defines an architecture for implementing services as multi-tier applications delivering scalability, portability, and manageability.” J2EE Architecture - 4 layers Clients Presentation Logic Business Logic Data Sources J2EE Components What do you need to know to develop J2EE applications? All tiers: Java Client tier: Swing Web tier: JSP, Servlets Business logic tier: EJB Connectivity: IIOP Database access: JDBC Plus: XML, JNDI, JMS, JTA The list continues to grow!! More Challenges  Where do I start ?  Application design complexity – – – How do I represent business entities in the middle-tier? How do I enforce business logic? How do I bind and interface client code?  How do I keep efficiency Agenda      J2EE Overview & Challenges Design Patterns & Frameworks BC4J Overview Demo Summary Design Patterns  A design pattern describes a proven solution to a recurring design problem  Reasons to use Design Patterns:  They are proven  They are reusable Source: http://java.sun.com/j2ee/blueprints/design_patterns/index.html Why Framework? “Large scale development of objectoriented software requires frameworks. It is important to have a framework, so that every time the design requires two objects to interact, a developer does not have to come up with a whole new notion of how the interaction works out.” Section 10.2.2.2, Page 253 Benefits of Framework     Better code Simpler code Better performing Less complex Business Component for Java (BC4J)  BC4J – A J2EE Framework that simplifies Development, Customization and Deployment of J2EE Applications  Implements SUN’s Design Patterns  Standard – Java and XML  Server Side Framework with Client Binding  Based on Oracle’s Developers experience Major Benefits of BC4J      Simplifying Server Coding Simplifying Client Binding Simplifies O/R Mapping Improve Network using Caching Hides Complex Infrastructure J2EE Framework – BC4J Simplifies and optimizes O/R mapping Simplifies and optimizes binding of GUI to logic Flexible Deployment Agenda      J2EE Overview & Challenges Design Patterns & Frameworks BC4J Overview Demo Summary Map Database Tables to Java Objects Customer CUSTOMER Order ORDER ITEM LineItem Entity Objects Add Business Rules Customer Status in ‘Platinum’, ‘Silver’, ‘Gold’ CUSTOMER ORDER Order ITEM Valid tracking no. LineItem Buy 10 get 1 free Entity Objects Bind Presentation Logic CustView SELECT id, name, status FROM Customer OrdView SELECT id,contact, trackno FROM Order ItemView SELECT id, quantity,discount FROM Item View Objects Customer Status in ‘Platinum’, ‘Silver’, ‘Gold’ Order Valid tracking no. LineItem Buy 10 get 1 free Entity Objects Bind Presentation Logic (custom view) PriorityOrder SELECT Order.id, Ord.contact, Ord.trackno, Cust.id, Cust.Status, FROM Order Ord, Customer Cust Customer Status in ‘Platinum’, ‘Silver’, ‘Gold’ Order Valid tracking no. View Objects Entity Objects Middle Tier Caching  Pulls data from database into middle tier and preserves relationships between data  Cache synchronizes data from different view objects that reference that same entity object.  Reduces round trips to database  Control synchronization and locking modes Group Components in a Logical Container CustView CustView Customer OrdView OrdView OrdView ItemView Logical Data Model Order ItemView LineItem View Objects Application Module Entity Objects BC4J Clients BC4J RMI/IIOP SlowPaying Customers Customer HTTP Bill Late Payments XML Payment Database Building UI for BC4J  HTML UI – JSP – JSP Tag library for BC4J  Java UI – JClient – Swing components with BC4J connectivity  XML UI – JSP – – XML messaging from/to BC4J XSQL Servlet interface to BC4J Flexible Deployment and Clients HTTP XML Browser client JDBC JSP page or servlet Servlet or JSP page on a Java-enabled Web server EJB RMI/IIOP JDBC Java GUI client EJB on an application server Best Practice Steps Our Apps Teams Follow  Design Application Business Model – Using UML Class Diagrams  Implement Application Business Model – Using of BC4J Framework  Identify Application Task – Using UML Use Cases  Implement Application Data Model for the Task – Using BC4J Framework  Bind Interfaces to Application Data Model – Swing, JSP, or XML  Test Interface and Select Deployment Target – Decide to Target Web Tier or EJB Tier D E M O N S T R A T I O N BC4J Agenda      J2EE Overview & Challenges Design Patterns & Frameworks BC4J Overview Demo Summary BC4J = Easier J2EE     J2EE Can be complex BC4J Makes J2EE Simple BC4J Is standard based Java+XML BC4J is part of JDeveloper Where to get more Information http://otn.oracle.com http://technet.oracle.com     Complete technical resource for developers Software, samples,& code downloads Discussion forums Whitepapers, technical information, documentation http://www.oracle.com Product news, Press Release, customer stories