Fall CIS 764 Database Systems Engineering L7. ADF + EJB Context: Oracle Application Development Framework …but … only EJB homework for now.
Fall CIS 764 Database Systems Engineering Oracle Fusion … the whole middleware suite … application server (including OC4J) BEPL manager (business process execution language) business rules system messaging service ADF <<<<<<<<<<<<<<<<<<<<<<<<<<<<<< JDeveloper Toplink Forms services Business Intelligence tools (monitoring, mining, analysis) Portal & portlets Identity & single sign-on … others.. the integration of eBus components (as PeopleSoft) into a SOA.
Fall CIS 764 Database Systems Engineering eWeek.com January 19, 2006 “ The lack of detail in Oracle's Fusion Application presentation suggests to some industry experts that the company is not at the halfway point in developing a merged suite. “
Fall CIS 764 Database Systems Engineering ADF included in JDev, ADF is the conceptual model, components, and wizards possible model components: EJB, WebService, TopLink, ADF_business_components controller: Struts, JSF (Java Server Faces) view: Swing, JSP, JSF all components conf via XML, for easy reconfig, reuse.
Fall CIS 764 Database Systems Engineering ADF Index Page ADF Overview, papers/1013/adf_10.1.3_overview.pdf papers/1013/adf_10.1.3_overview.pdf 11 pages, 2006
Fall CIS 764 Database Systems Engineering
Fall CIS 764 Database Systems Engineering
Fall CIS 764 Database Systems Engineering GUI components Swing … only in Java apps (not in server) JSP ….. Weak components (button, form ), not automated data binding. JSF …. Web components, w data binding. ADF Faces … Oracle’s own extensions of JSF and with DB binding for use in apps.
Fall CIS 764 Database Systems Engineering ADF Learning Center: two tracks: * IDE Fusion … JSF, ADF Faces, ADF Model, ADF Business Components ADF_Overview_Viewlet_viewlet_swf.html ADF_Overview_Viewlet_viewlet_swf.html an animation and SC example * Java programmer…. JSF, ADF Faces,ADF Model, EJB3.0, TopLink
Fall CIS 764 Database Systems Engineering pp … pdf for sample application, ServiceCompany.. Service requests for large appliances index page for the following: completed SC demo web app (required JUnit extension to JDev) pp ADF guide !
Fall CIS 764 Database Systems Engineering Assignment: just listen to the following Steve Muench, ADF weblog l Select #4: ( animated demo w audio) Creating a Databound, Master/Detail Swing Panel Using JGoodies Form Layout simplejgoodies/binding_demo.html?_template=/ocom/ocom_item_templates/print
Fall CIS 764 Database Systems Engineering EJB3 POJO + Annotations => EJB EJB 3.0 Resources Introduction: or Java World: (has more code examples)
Fall CIS 764 Database Systems Engineering Entity bean … bound to entity data, with unique key value; can contain multiple subitems. where is the concept of a result set ? Session bean … “session beans generally represent actions …” << bad OO ! “process entity” vs “data entity” Stateless … “do not have internal state” ( ) … rather: do not keep track of the callers state ! Statefull …..maintains the conversation state across multiple method invocations (e.g. a shopping cart) Beans have an associated deployment descriptor Beans have own QL … “OO version of sql “
Fall CIS 764 Database Systems Engineering EJB annotations
Fall CIS 764 Database Systems Engineering
Fall CIS 764 Database Systems Engineering import public class CalculateEJBBean implements CalculateEJB { int value = 0; public String incrementValue() { value++; return "value incremented by 1"; } }
Fall CIS 764 Database Systems Engineering import javax.persistence.*; import java.util.ArrayList; = "EMPLOYEES") public class Employee implements java.io.Serializable { private int empId; private String eName; private primaryKey=true) /* getters and setters here … see next slide }
Fall CIS 764 Database Systems Engineering public int getEmpId( ) { return empId; } public void setEmpId(int empId) { this.empId = empId; } public String getEname( ) { return eName; } public void setEname(String eName) { this.eName = eName; } public double getSal( ) { return sal; } public void setSal(double sal) { this.sal = sal; } public String toString() { StringBuffer buf = new StringBuffer(); buf.append("Class:").append(this.getClass(). getName()).append(" :: ").append(" empId:").append(getEmpId()). append(" ename:").append(getEname()).append("sal:").append(getSal()); return buf.toString(); } ??? Why the toString method <<<<<<<<<<<<<<<< ??? Why ArrayList and Collection
Fall CIS 764 Database Systems Engineering import javax.naming.Context; import javax.naming.InitialContext; public class CalculateejbClient { public static void main(String [] args) { Context context = new InitialContext(); CalculateEJB myejb = (CalculateEJB)context.lookup("java:comp/env/ejb/CalculateEJB"); myejb.incrementValue(); } } ??? Where does this “client” run ??
Fall CIS 764 Database Systems Engineering Homework: Oracle EJB3 Simple Tutorial Do an “in essence” version for the PO DB. Note: this is not a web app. The client has remote access to the bean. Post snapshots in JDev and running the client.
Fall CIS 764 Database Systems Engineering Note: Future requirements: Contribute some tutorial content … Contribute some technical presentation …. … prior approval of topics is required.
Fall CIS 764 Database Systems Engineering end.