Oracle9iAS Tech nicaloverview e-business Integration Management & Security Portals Sandor Nieuwenhuijs Manh-Kiet Yap J2EE & Web Services 9iAS EMEA Product Management Oracle Corporation Business Intelligence Performance & Caching Wireless Agenda 9iAS TechnicalPlatform Overview Oracle Containers for Java (OC4J) Architecture and supported Standard APIs;Web Services Insta lation/configuration; Managing the 9iAS Environment RAS - Reliability, Availability and Scalability Performance, caching; Security Oracle9iAS Development J2EE Business Intelligence Wireless Web Services Integration Portals Oracle Corporation 1
Oracle9iAS Deployment Performance Systems Management Security Caching Scalability Availability Industry Trends Middleware Growing in Complexity Incomplete offerings Growing Cost of Ownership Integration of components Applications Difficult to Develop Regression from 4GLto 3GL Tools catching up Applications Difficult to Deploy Scalability, Reliability, Manageability Problems Application Servers Reduce Complexity Footprint Broadening The Marketing Vision Open Standards Devices s Run Your Applications Oracle9i Application Server Manage Your Data Oracle9i Database Server Oracle9i Application Server v2 Major Update Most Productive Development Complete J2EE, Web Services Better Portal, Wireless, Integration, Caching New Personalization, Clickstream, BI, Personal Information Management Most Reliable Deployment Performance, Reliability, Availability, Scalability, Clustering Manageability, Security 100% Standards Compliant Oracle Corporation 2
Tools & Tech nology Partners Oracle9iAS Architecture Browser Wireless Oracle DB Non-Oracle Packaged Apps Platform-independent, portable code & bytecode Focus on networking Focus on security Web Services B2B Apps Oracle Corporation 3
a standard created by SUN adopted by all: Oracle, IBM, now driven by the Java Community Process (jcp.org) participates in 60+ JSRs a standard 3 editions : 3 platforms a standard 3 editions : 3 platforms Firewall Tier HTTP XML RMI / IIOP JSP/ Servlet J2EE Application Server Middle Tier EJB Container EJB EJB Other Services: JDBC, JMS, JCA, JavaMail Enterprise Information Systems (EIS): Relational-Database, Legacy Applications, ERP Systems EIS Tier Oracle Corporation 4
J2EE components : applet URL in the Browser Applet in the Browser Tier HTTP HTTP Middle Tier EIS Tier (J2EE) EJB Spec / Container provides? remote access? transactions Gui? security? standardized packaging / deployment (-ejb.jar)? database persistence (entity beans)? messaging integration (message-driven beans) EJB Container Self- Service Deployment Descriptor Employee PayRoll Employee Database PayRoll Database J2EE components : Servlets URL in the Browser HTML in the Browser Tier HTTP HTTP Servlet Java Server Pages Middle Tier (J2EE) Servlet spec / container provides session management declarative security standardized packaging / deployment (.war) EIS Tier EJB: Programming Models Stateless Session Beans (EJB 1.0) StatefulSession Beans (EJB 1.0) Entity Beans Bean Managed Persistence (EJB 1.1) Container Managed Persistence (EJB 1.1/2.0) Container Manager Relationships (EJB 2.0) Message Driven Beans (EJB 2.0) Oracle Corporation 5
EJB Types? Session Beans? Entity Beans? Message-driven Beans EJB Types? Session Beans? Entity Beans? Message-driven Beans Server-side objects that expose remote methods and can persist their attributes in a database automatically (CMP) or not (BMP) EJB Types? Session Beans? Entity Beans? Message-driven Beans Server-side objects that expose remote methods: stateless session beans and keep their session state : stateful session beans EJB Types {? Session Beans? Entity Beans? Message-driven Beans public class EmployeeBean implements EntityBean public Integer employeeid; public String employeename; public Adress employeeaddress ; // some code } Server-side objects that expose remote methods and can persist their attributes in a database automatically (CMP) or not (BMP) Oracle Corporation 6
<entity> <description>cmp Entity Bean</description> EJB public Types class EmployeeBean <display-name>employee</display implements EntityBean -name> {? Session Beans <ejb-name>employee</ ejb-name> public Integer <home>employee. EmpoyeeId; EmployeeHome </home>? Entity public Beans String <remote>employee.employee</remote> EmpoyeeName ;? Message-driven public Adress Beans <ejb-class>employee. EmployeeAddress ; EmployeeBean </ejb-class> <persistence-type>container</persistence Server-side objects that expose -type> // some code <primkey-field>employeeid </primkey-field> } <prim-key-class>java.lang.integer</prim remote methods and can persist -key-class> its <reentrant>false</reentrant> attributes in a database automatically <cmp-field> <field-name>employeeid (CMP) or not </field-name> (BMP) </cmp-field> <cmp-field> <field-name>employeename </field-name> </cmp-field> <cmp-field> <field-name>employeeaddress </field-name> </cmp-field> </entity> EJB Types? Session Beans? Entity Beans? Message-driven Beans sends receives EJB Types? Session Beans? Entity Beans? Message-driven Beans New in EJB 2.0 Container-managed relations EJB Query Language (EQL) EJB: Message Driven Beans MDBs have no conversationalstate Similar to Stateless Session Beans A linstances of message driven beans are identical Any message driven bean can service any request MDBs are anonymous MDBs don t have a Remote Interface MDBs don t have business methods s can not access them using H ome Interfaces s just send messages to a queue or topic Oracle Corporation 7
EJB: Processing Messages using MDBs J2EE Connector Architecture (J2C) Message Sends Destination Queue Message Receives Message Driven Bean An to provide a standard means for integrating a J2EE application server and Enterprise Information Systems (EISs) Message Driven Bean Pool EJB Container The EJB Container maintains a pool of MDBs that service requests from the Queue J2EE Connector Architecture is part of J2EE 1.3 specification J2C can be used in the fo lowing scenarios Application to Application Integration (A2A) Business to Business Integration (B2B) J2EE components : J2EE Connector Architecture (J2C) Webserver Servlet JSP JNDI EJB Container Session Bean Session Bean Entity Bean Entity Bean Connector Connector EIS EIS J2C: Benefits The connector reduces the integration effort from an (m *n)problem to an (m + n) problem, where m is the number of application servers and n the number of EISs to be integrated. J2C defines a standard set of system-level contracts between a J2EE application server and an EIS. The EIS side of the contract is implemented by a resource adapter. EIS EIS AS AS J2C m*n m+n Oracle Corporation 8
a standard J2EE a standard J2EE specifies the runtime and building blocks for developing and deploying distributed applications standardizes packaging and deployment (.ear), means portability and scalability by design documents best practices (J2EE blueprints) so all J2EE application servers are the same? Not really! J2EE application servers (vendors) agree on the specification, compete on the implementation a standard J2EE Browser EJB CORBA http Apache (9iAS) RMI RMI-over-IIOP JTA JSP JMS JNDI Java Mail JDK Java VM Servlets EJBs (Session, Entity, MDBs) JCA JDBC J2EE Container JAAS Database What are Web Services? 9iAS Oracle Corporation 9
Web Services are Business Applications or Business Processes that... Expose and Describe Themselves A low Applications to Locate Them on Internet Can Be Invoked and Respond over Standard Protocol Simple Web Services are Applications that Communicate... Point-to-Point, Request-Response, Tightly Coupled Applications Expose XML Interfaces (WSDL) WSDL Interfaces Published to Registry (UDDI) s look up UDDI and Invoke over XMLProtocol (SOAP) The Web Services Model Web Services are Different... UNIX RPC - Requires binary-compatible Unix implementation at both ends CORBA-Requires compatible ORBs RMI-Requires Java at each endpoint DCOM-requires Window s at each endpoint Web Services are platform and language neutral 4. Invoke (XML Protocol - SOAP) Application 2. 3. Find XML Find Interface (WSDL) XML Interface (WSDL) Application Web Service Web Services Directory (UDDI) 2. 1. Publish Publish 1. Generate Oracle Corporation 10
Business Case: MedicalClaims Processing Before: Paper invoices (claims) INVOICE 1 date: 1 nov 2002 amount 250 Healthcare provider INVOICE 2 date: 1 nov 2002 amount 100 INVOICE 3 date: 1 nov 2002 amount 450 Insurance companies INVOICE 4 date: 1 nov 2002 amount 50 Infomedics http://www.infomedics.nl INVOICE 5 date: 1 nov 2002 amount 750 INVOICE 6 date: 1 nov 2002 amount 35 The Dutch healthcare sector produces 380 mi lion claims annua ly Now: Electronic claims via the Internet Dutch healthcare spending EUR billion Share in spending Healthcare Providers (non AWBZ) National Insurance Fund Covering Long Term Care ( AWBZ ) 13.7 5.9 11.8 National Health Insurance Fund ( Ziekenfonds ) Hospitals Pharmacists Specialists GP s Paramedical Auxiliaries Dental care 8.1% 5.9% 4.8% 4.7% 4.5% 19.6% 47.3% Total of 380 million claims Healthcare provider Claims Processing Insurance companies Healthcare Insurers ( Particuliere Ziektekosten ) Transport Midwives Other 2.0% 1.5% 1.5% Oracle Corporation 11
Architecture e-business Integration Management & Security J2EE & Web Services Portals Business Intelligence Performance & Caching Wireless Oracle Corporation 12