j2ee--1 j2ee - enterprise development and interoperability with non-j2ee clients presented by sudha...

66
J2EE--1 J2EE - ENTERPRISE DEVELOPMENT AND J2EE - ENTERPRISE DEVELOPMENT AND INTEROPERABILITY WITH NON-J2EE CLIENTS INTEROPERABILITY WITH NON-J2EE CLIENTS presented by Sudha Balla, Betsy Cherian and Lance Fiondella Semester Project CSE333 – Distributed Component Systems (FALL 2002) Instructor Prof. Steven A. Demurjian Department of Computer Science and Engineering University of Connecticut [email protected] [email protected] [email protected] [email protected]

Post on 21-Dec-2015

218 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: J2EE--1 J2EE - ENTERPRISE DEVELOPMENT AND INTEROPERABILITY WITH NON-J2EE CLIENTS presented by Sudha Balla, Betsy Cherian and Lance Fiondella Semester Project

J2EE--1

J2EE - ENTERPRISE DEVELOPMENT AND J2EE - ENTERPRISE DEVELOPMENT AND INTEROPERABILITY WITH NON-J2EE CLIENTSINTEROPERABILITY WITH NON-J2EE CLIENTS

presented bySudha Balla, Betsy Cherian and Lance Fiondella

Semester ProjectCSE333 – Distributed Component Systems (FALL 2002)

InstructorProf. Steven A. Demurjian

Department of Computer Science and EngineeringUniversity of Connecticut

[email protected]@[email protected]@gtemail.net

Page 2: J2EE--1 J2EE - ENTERPRISE DEVELOPMENT AND INTEROPERABILITY WITH NON-J2EE CLIENTS presented by Sudha Balla, Betsy Cherian and Lance Fiondella Semester Project

J2EE--2

Organization of presentationOrganization of presentation

1.1. Introduction and Motivation(Lance)Introduction and Motivation(Lance)2.2. Server-side component architectures(Sudha)Server-side component architectures(Sudha)3.3. J2EE Platform overview(Lance)J2EE Platform overview(Lance)4.4. J2EE Standardized Services(Betsy)J2EE Standardized Services(Betsy)5.5. EJB/CORBA(Sudha)EJB/CORBA(Sudha)6.6. J2EE Patterns(Betsy)J2EE Patterns(Betsy)7.7. The Department of Motor Vehicles Prototype(Sudha)The Department of Motor Vehicles Prototype(Sudha)8.8. Conclusion(Sudha)Conclusion(Sudha)

Page 3: J2EE--1 J2EE - ENTERPRISE DEVELOPMENT AND INTEROPERABILITY WITH NON-J2EE CLIENTS presented by Sudha Balla, Betsy Cherian and Lance Fiondella Semester Project

J2EE--3

Introduction - AssessmentIntroduction - Assessment

Java has been around for over 7 years now.Java has been around for over 7 years now. Server-side component architecturesServer-side component architectures Microsoft’s .NETMicrosoft’s .NET product product Sun Microsystems’ Java2 Platform Enterprise Sun Microsystems’ Java2 Platform Enterprise

Edition (J2EE)Edition (J2EE) standard standard Object Management Group’s CORBA standardObject Management Group’s CORBA standard

Page 4: J2EE--1 J2EE - ENTERPRISE DEVELOPMENT AND INTEROPERABILITY WITH NON-J2EE CLIENTS presented by Sudha Balla, Betsy Cherian and Lance Fiondella Semester Project

J2EE--4

Introduction - BenefitsIntroduction - Benefits

Enterprise JavaBeans includes both Java/RMI Enterprise JavaBeans includes both Java/RMI and RMI – IIOP as middleware options. and RMI – IIOP as middleware options.

Sun and OMG support EJB/CORBA Sun and OMG support EJB/CORBA interoperability and have produced standards interoperability and have produced standards for the same. for the same.

The EJB/CORBA mapping specification and RMI-The EJB/CORBA mapping specification and RMI-IIOP relieve EJB from being restricted to the IIOP relieve EJB from being restricted to the Java platform, enabling EJB components to be Java platform, enabling EJB components to be exposed as CORBA objects making them exposed as CORBA objects making them well well suited for cross-language suited for cross-language interoperabilityinteroperability..

Page 5: J2EE--1 J2EE - ENTERPRISE DEVELOPMENT AND INTEROPERABILITY WITH NON-J2EE CLIENTS presented by Sudha Balla, Betsy Cherian and Lance Fiondella Semester Project

J2EE--5

Page 6: J2EE--1 J2EE - ENTERPRISE DEVELOPMENT AND INTEROPERABILITY WITH NON-J2EE CLIENTS presented by Sudha Balla, Betsy Cherian and Lance Fiondella Semester Project

J2EE--6

Motivation – SE to EEMotivation – SE to EE

Large organizations Large organizations utilizeutilize J2EE. J2EE.

Page 7: J2EE--1 J2EE - ENTERPRISE DEVELOPMENT AND INTEROPERABILITY WITH NON-J2EE CLIENTS presented by Sudha Balla, Betsy Cherian and Lance Fiondella Semester Project

J2EE--7

Motivation - …Motivation - …

Page 8: J2EE--1 J2EE - ENTERPRISE DEVELOPMENT AND INTEROPERABILITY WITH NON-J2EE CLIENTS presented by Sudha Balla, Betsy Cherian and Lance Fiondella Semester Project

J2EE--8

Motivation – Academic perspectiveMotivation – Academic perspective

Maintain an objective research perspective on the Maintain an objective research perspective on the state of development of Java2 Enterprise Edition state of development of Java2 Enterprise Edition and Java technologies in general. and Java technologies in general.

Determine the role Java plays as an educational Determine the role Java plays as an educational language, problem-solving skill for the workplace, language, problem-solving skill for the workplace, and research tool for academia. and research tool for academia.

Focus on the classical facilitiesFocus on the classical facilities provides insight provides insight into the true maturation of Java.into the true maturation of Java.

Page 9: J2EE--1 J2EE - ENTERPRISE DEVELOPMENT AND INTEROPERABILITY WITH NON-J2EE CLIENTS presented by Sudha Balla, Betsy Cherian and Lance Fiondella Semester Project

J2EE--9

Server-side Component ArchitecturesServer-side Component Architectures((OverviewOverview))

Issues surrounding server-side developmentIssues surrounding server-side development The need for standardized architectureThe need for standardized architecture Popular server-side architecture standardsPopular server-side architecture standards Similarities and differences between J2EE and Similarities and differences between J2EE and

other competing technologiesother competing technologies Enterprise Application Development and these Enterprise Application Development and these

technologiestechnologies

Page 10: J2EE--1 J2EE - ENTERPRISE DEVELOPMENT AND INTEROPERABILITY WITH NON-J2EE CLIENTS presented by Sudha Balla, Betsy Cherian and Lance Fiondella Semester Project

J2EE--10

Server-side Component ArchitecturesServer-side Component Architectures((Software ComponentsSoftware Components))

What are software components?What are software components? What is a component architecture?What is a component architecture? Divide-and-conquer approach and its advantagesDivide-and-conquer approach and its advantages

Saves development and deployment time Services could be simply outsourced Users save time by buying instead of building Deployment is strengthened as the common

products are developed by domain experts

Page 11: J2EE--1 J2EE - ENTERPRISE DEVELOPMENT AND INTEROPERABILITY WITH NON-J2EE CLIENTS presented by Sudha Balla, Betsy Cherian and Lance Fiondella Semester Project

J2EE--11

Server-side Component ArchitecturesServer-side Component Architectures((Server-side ComponentsServer-side Components))

What is a server-side deployment?What is a server-side deployment? Logical layers in the deploymentLogical layers in the deployment

Presentation LayerPresentation Layer Business logic LayerBusiness logic Layer Data LayerData Layer

Layers are pure abstractions and may or may not Layers are pure abstractions and may or may not correspond to physical distributioncorrespond to physical distribution

a N-tier architecture deployment is one where there a N-tier architecture deployment is one where there is a physical separation between each of the layersis a physical separation between each of the layers

Each of the layers could further be decomposed to Each of the layers could further be decomposed to allow various parts of the system to scale allow various parts of the system to scale independently independently

Page 12: J2EE--1 J2EE - ENTERPRISE DEVELOPMENT AND INTEROPERABILITY WITH NON-J2EE CLIENTS presented by Sudha Balla, Betsy Cherian and Lance Fiondella Semester Project

J2EE--12

Server-side Component ArchitecturesServer-side Component Architectures((Three-tier Web-based Application ArchitectureThree-tier Web-based Application Architecture))

Presentation layer

Business logicLayer

Data layer

WEB SERVER

APPLICATION SERVERWITH COMPONENT

CONTAINER

Database

Secure zone

Insecure

Firewall + tier boundaryFirewall + tier boundary

tier boundarytier boundary

Page 13: J2EE--1 J2EE - ENTERPRISE DEVELOPMENT AND INTEROPERABILITY WITH NON-J2EE CLIENTS presented by Sudha Balla, Betsy Cherian and Lance Fiondella Semester Project

J2EE--13

Server-side Component ArchitecturesServer-side Component Architectures((N-Tier ArchitecturesN-Tier Architectures))

PRO:PRO: Deployment costs are lowDeployment costs are low Database switching costs are lowDatabase switching costs are low Low costs in business logic migrationLow costs in business logic migration Securing deployments using firewalls is possibleSecuring deployments using firewalls is possible Resource pooling is possibleResource pooling is possible Performance slowdown is localizedPerformance slowdown is localized Errors are localizedErrors are localizedCON:CON: Communication performance suffersCommunication performance suffers Maintenance costs are highMaintenance costs are high

Page 14: J2EE--1 J2EE - ENTERPRISE DEVELOPMENT AND INTEROPERABILITY WITH NON-J2EE CLIENTS presented by Sudha Balla, Betsy Cherian and Lance Fiondella Semester Project

J2EE--14

Server-side Component ArchitecturesServer-side Component Architectures(Demands of a multi-tier deployment)(Demands of a multi-tier deployment)

Handle lifecycle of the componentsHandle lifecycle of the components Perform resource poolingPerform resource pooling Broker method requestsBroker method requests Handle the logic to load-balance communications Handle the logic to load-balance communications

between each tierbetween each tier Deal with ramifications of two or more clients Deal with ramifications of two or more clients

concurrently accessing the same componentconcurrently accessing the same component Reroute client requests to other machines in case of Reroute client requests to other machines in case of

failurefailure Provide secure environment and deal with Provide secure environment and deal with

unauthorized accessesunauthorized accessesAPPLICATION SERVERS WERE BORN AS A APPLICATION SERVERS WERE BORN AS A

SOLUTION TO THESE ISSUESSOLUTION TO THESE ISSUES

Page 15: J2EE--1 J2EE - ENTERPRISE DEVELOPMENT AND INTEROPERABILITY WITH NON-J2EE CLIENTS presented by Sudha Balla, Betsy Cherian and Lance Fiondella Semester Project

J2EE--15

Server-side Component ArchitecturesServer-side Component Architectures(Role of Application Servers)(Role of Application Servers)

provide the middleware servicesprovide the middleware services allow enterprises buy the servicesallow enterprises buy the services aid in rapid the application developmentaid in rapid the application development

Anomalies and problems:Anomalies and problems: Vendor specific middleware servicesVendor specific middleware services Once an application sever is chosen the code is Once an application sever is chosen the code is

locked to that particular vendor’s solutionlocked to that particular vendor’s solution Reduces portabilityReduces portability Hampers commerce of componentsHampers commerce of components

Page 16: J2EE--1 J2EE - ENTERPRISE DEVELOPMENT AND INTEROPERABILITY WITH NON-J2EE CLIENTS presented by Sudha Balla, Betsy Cherian and Lance Fiondella Semester Project

J2EE--16

Server-side Component ArchitecturesServer-side Component Architectures(Need for a standard)(Need for a standard)

The standard would describe a well-formed The standard would describe a well-formed interface between the application server and the interface between the application server and the components themselvescomponents themselves

Components could be managed in a portable wayComponents could be managed in a portable way Components could be switched between various Components could be switched between various

application serversapplication servers Component vendors could be relieved of issues Component vendors could be relieved of issues

about external overhead such as resource pooling, about external overhead such as resource pooling, networking, security etc.networking, security etc.

Necessary elements of enterprise-class Necessary elements of enterprise-class deployments are externalized to application server deployments are externalized to application server vendors, providing common services to all vendors, providing common services to all component developerscomponent developers

Page 17: J2EE--1 J2EE - ENTERPRISE DEVELOPMENT AND INTEROPERABILITY WITH NON-J2EE CLIENTS presented by Sudha Balla, Betsy Cherian and Lance Fiondella Semester Project

J2EE--17

Server-side Component ArchitecturesServer-side Component Architectures(Standards)(Standards)

OMG’s CORBA StandardOMG’s CORBA Standard Sun Microsystem’s J2EE StandardSun Microsystem’s J2EE Standard Microsoft’s .NET ArchitectureMicrosoft’s .NET Architecture

Page 18: J2EE--1 J2EE - ENTERPRISE DEVELOPMENT AND INTEROPERABILITY WITH NON-J2EE CLIENTS presented by Sudha Balla, Betsy Cherian and Lance Fiondella Semester Project

J2EE--18

Server-side Component ArchitecturesServer-side Component Architectures(Standards – J2EE vs .NET)(Standards – J2EE vs .NET)

Java Client Application Business System Web Client

Container

Servlets and JSPs

EJBs

Connectors

Legacy Systems or Databases or Other Business Systems

The J2EE Server-side ArchitectureThe J2EE Server-side Architecture

Page 19: J2EE--1 J2EE - ENTERPRISE DEVELOPMENT AND INTEROPERABILITY WITH NON-J2EE CLIENTS presented by Sudha Balla, Betsy Cherian and Lance Fiondella Semester Project

J2EE--19

Server-side Component ArchitecturesServer-side Component Architectures(Standards – J2EE vs .NET)(Standards – J2EE vs .NET)

Business System Rich Client Application Web Client

Container

ASP.NET

.Net Managed Components

Host Integration Server 2000

Legacy Systems or Databases or Other Business Systems

The .NET Server-side ArchitectureThe .NET Server-side Architecture

Page 20: J2EE--1 J2EE - ENTERPRISE DEVELOPMENT AND INTEROPERABILITY WITH NON-J2EE CLIENTS presented by Sudha Balla, Betsy Cherian and Lance Fiondella Semester Project

J2EE--20

Server-side Component ArchitecturesServer-side Component Architectures(Standards – J2EE vs .NET)(Standards – J2EE vs .NET)

J2EE was found advantageous over .NET:J2EE was found advantageous over .NET:

a proven platform while .NET is a rewrite of Microsoft’s previous a proven platform while .NET is a rewrite of Microsoft’s previous technologies and introduces risk as with any first-generation technologies and introduces risk as with any first-generation technologytechnology

lets enterprises take advantage of existing hardware they may lets enterprises take advantage of existing hardware they may havehave

gives platform neutrality, including Windows and good portabilitygives platform neutrality, including Windows and good portability

has a better legacy integration through the Java Connector has a better legacy integration through the Java Connector Architecture (JCA)Architecture (JCA)

lets the use of any operating system enterprises prefer, such as lets the use of any operating system enterprises prefer, such as Windows, UNIX, or mainframeWindows, UNIX, or mainframe

Page 21: J2EE--1 J2EE - ENTERPRISE DEVELOPMENT AND INTEROPERABILITY WITH NON-J2EE CLIENTS presented by Sudha Balla, Betsy Cherian and Lance Fiondella Semester Project

J2EE--21

J2EE Platform Overview - J2EE Platform Overview - EnvironmentEnvironment

Page 22: J2EE--1 J2EE - ENTERPRISE DEVELOPMENT AND INTEROPERABILITY WITH NON-J2EE CLIENTS presented by Sudha Balla, Betsy Cherian and Lance Fiondella Semester Project

J2EE--22

J2EE Platform Overview - J2EE Platform Overview - Components and ContainersComponents and Containers

Page 23: J2EE--1 J2EE - ENTERPRISE DEVELOPMENT AND INTEROPERABILITY WITH NON-J2EE CLIENTS presented by Sudha Balla, Betsy Cherian and Lance Fiondella Semester Project

J2EE--23

Page 24: J2EE--1 J2EE - ENTERPRISE DEVELOPMENT AND INTEROPERABILITY WITH NON-J2EE CLIENTS presented by Sudha Balla, Betsy Cherian and Lance Fiondella Semester Project

J2EE--24

J2EE Platform Overview – J2EE Platform Overview – Java Servlet Technology(1)Java Servlet Technology(1)

Mechanism for generating dynamic web content.Mechanism for generating dynamic web content. They may be thought of as Java They may be thought of as Java applets for applets for

serversservers.. platform independent, pleasant user interfaces, platform independent, pleasant user interfaces,

better performance due to persistent well-defined better performance due to persistent well-defined API for flexibility. API for flexibility.

Page 25: J2EE--1 J2EE - ENTERPRISE DEVELOPMENT AND INTEROPERABILITY WITH NON-J2EE CLIENTS presented by Sudha Balla, Betsy Cherian and Lance Fiondella Semester Project

J2EE--25

J2EE Platform Overview – J2EE Platform Overview – Java Servlet Technology(2)Java Servlet Technology(2)

Web browser Web browser HTTP request HTTP request web server web server Web server Web server gives request to servlet container gives request to servlet container

gives request to specific servlet gives request to specific servlet Servlet receives request object. Servlet receives request object. Servlet processes. (may return a response object) Servlet processes. (may return a response object) During process, servlet may use a context object to During process, servlet may use a context object to

save informationsave information usable by other servlets, and usable by other servlets, and read a session object to read a session object to determine a client statedetermine a client state..

Page 26: J2EE--1 J2EE - ENTERPRISE DEVELOPMENT AND INTEROPERABILITY WITH NON-J2EE CLIENTS presented by Sudha Balla, Betsy Cherian and Lance Fiondella Semester Project

J2EE--26

J2EE Platform Overview – J2EE Platform Overview – JavaServer Pages(1)JavaServer Pages(1)

Utilize Java Servlet technology to simplify well Utilize Java Servlet technology to simplify well organized dynamic web content.organized dynamic web content.

JSP pages defineJSP pages define the static HTML template, and the static HTML template, and embeds invocations to Java code. embeds invocations to Java code.

Useful and routine operations like embedding Useful and routine operations like embedding dynamic distributed database queries and dynamic distributed database queries and generation of their associated reports.generation of their associated reports.

Hides the complexity of programming in Java Hides the complexity of programming in Java from the page designerfrom the page designer

Page 27: J2EE--1 J2EE - ENTERPRISE DEVELOPMENT AND INTEROPERABILITY WITH NON-J2EE CLIENTS presented by Sudha Balla, Betsy Cherian and Lance Fiondella Semester Project

J2EE--27

Enterprise JavaBean Components(1)Enterprise JavaBean Components(1)

A A server-side technologyserver-side technology for developing and for developing and deploying components containing the business deploying components containing the business logic of an enterprise application.logic of an enterprise application.

Allows encapsulation of legacy technologies. Allows encapsulation of legacy technologies. EJB is a client-neutral standard. EJB is a client-neutral standard.

Page 28: J2EE--1 J2EE - ENTERPRISE DEVELOPMENT AND INTEROPERABILITY WITH NON-J2EE CLIENTS presented by Sudha Balla, Betsy Cherian and Lance Fiondella Semester Project

J2EE--28

Enterprise JavaBean Components – Enterprise JavaBean Components – Entity BeansEntity Beans

Represent Represent persistentpersistent objects like database entries. objects like database entries. EJB specification indicates that a bean and its EJB specification indicates that a bean and its

references survive a crash of its container. references survive a crash of its container. (achieved by storing the state in the database or (achieved by storing the state in the database or through serialization)through serialization)

Container provides a class in order to provide Container provides a class in order to provide meta-data to the client.meta-data to the client.

Page 29: J2EE--1 J2EE - ENTERPRISE DEVELOPMENT AND INTEROPERABILITY WITH NON-J2EE CLIENTS presented by Sudha Balla, Betsy Cherian and Lance Fiondella Semester Project

J2EE--29

Enterprise JavaBean Components - Enterprise JavaBean Components - Message-Driven BeansMessage-Driven Beans

A basis for constructing loosely coupled A basis for constructing loosely coupled applications capable of communicating indirectly applications capable of communicating indirectly using the queuing and subscription models using the queuing and subscription models supported by JMSsupported by JMS..

More flexible and realistic for heavily congested More flexible and realistic for heavily congested networks.networks.

Page 30: J2EE--1 J2EE - ENTERPRISE DEVELOPMENT AND INTEROPERABILITY WITH NON-J2EE CLIENTS presented by Sudha Balla, Betsy Cherian and Lance Fiondella Semester Project

J2EE--30

Enterprise JavaBean Components - Enterprise JavaBean Components - Session BeansSession Beans

Limited lifetime as the name suggestsLimited lifetime as the name suggests If If statelessstateless won’t preserve state between calls won’t preserve state between calls Saving and restoring state are properties of Saving and restoring state are properties of statefulstateful

session beanssession beans

Page 31: J2EE--1 J2EE - ENTERPRISE DEVELOPMENT AND INTEROPERABILITY WITH NON-J2EE CLIENTS presented by Sudha Balla, Betsy Cherian and Lance Fiondella Semester Project

J2EE--31

J2EE Technology SuiteJ2EE Technology Suite

Page 32: J2EE--1 J2EE - ENTERPRISE DEVELOPMENT AND INTEROPERABILITY WITH NON-J2EE CLIENTS presented by Sudha Balla, Betsy Cherian and Lance Fiondella Semester Project

J2EE--32

J2EE Standardized ServicesJ2EE Standardized Services

The containers supporting the J2EE components provide The containers supporting the J2EE components provide three types of services :three types of services : Communication

RMI-IIOP Java IDL JMS Java Mail

Enterprise JDBC JTA JNDI JCA

Internet HTTP TCP/IP SSL XML

Page 33: J2EE--1 J2EE - ENTERPRISE DEVELOPMENT AND INTEROPERABILITY WITH NON-J2EE CLIENTS presented by Sudha Balla, Betsy Cherian and Lance Fiondella Semester Project

J2EE--33

Communication ServicesCommunication Services

JavaIDL, RMI-IIOPJavaIDL, RMI-IIOP Allows objects written in Java to to invoke

CORBA objects using IIOP. Provides interoperability with CORBA objects.

JMSJMS API for asynchronous messaging

JavaMail:JavaMail: Provides an API for electronic mail

Page 34: J2EE--1 J2EE - ENTERPRISE DEVELOPMENT AND INTEROPERABILITY WITH NON-J2EE CLIENTS presented by Sudha Balla, Betsy Cherian and Lance Fiondella Semester Project

J2EE--34

Enterprise ServicesEnterprise Services

JDBCJDBC API for DB independent connectivity between

J2EE and other datasources JTAJTA

The transaction API for J2EE which guarantees transactional integrity

JNDIJNDI Provides a naming environment, & facilitates

directory operations JCAJCA

Mandatory with v.1.3 of J2EE. Helps to integrate different EJB containers with different EIS.

Page 35: J2EE--1 J2EE - ENTERPRISE DEVELOPMENT AND INTEROPERABILITY WITH NON-J2EE CLIENTS presented by Sudha Balla, Betsy Cherian and Lance Fiondella Semester Project

J2EE--35

Internet ServicesInternet Services

For access to Internet services, J2EE supports the For access to Internet services, J2EE supports the following protocols:following protocols: TCP/IP HTTP SSL

XMLXML J2EE v.1.3. supports XML functionality.

Page 36: J2EE--1 J2EE - ENTERPRISE DEVELOPMENT AND INTEROPERABILITY WITH NON-J2EE CLIENTS presented by Sudha Balla, Betsy Cherian and Lance Fiondella Semester Project

J2EE--36

EJB – CORBA INTEROPERABILITYEJB – CORBA INTEROPERABILITY (Overview)(Overview)

how EJB and CORBA complement each otherhow EJB and CORBA complement each other where EJB gets its edge over CORBAwhere EJB gets its edge over CORBA where CORBA would be still depended onwhere CORBA would be still depended on benefits of EJB / CORBA interoperabilitybenefits of EJB / CORBA interoperability interoperability scenariosinteroperability scenarios

Page 37: J2EE--1 J2EE - ENTERPRISE DEVELOPMENT AND INTEROPERABILITY WITH NON-J2EE CLIENTS presented by Sudha Balla, Betsy Cherian and Lance Fiondella Semester Project

J2EE--37

EJB – CORBA INTEROPERABILITYEJB – CORBA INTEROPERABILITY ((CORBACORBA Overview) Overview)

CLIENT

CORBA Stub

ORB ORB

CORBA Skeleton

CORBA Object Implementation

Network via IIOPNetwork via IIOP

CORBA ArchitectureCORBA Architecture

CORBA Object InterfaceCORBA Object Interface

Page 38: J2EE--1 J2EE - ENTERPRISE DEVELOPMENT AND INTEROPERABILITY WITH NON-J2EE CLIENTS presented by Sudha Balla, Betsy Cherian and Lance Fiondella Semester Project

J2EE--38

EJB – CORBA INTEROPERABILITYEJB – CORBA INTEROPERABILITY ((CORBACORBA Services) Services)

COS NamingCOS Naming CORBA Event ServiceCORBA Event Service Object Transaction Service (OTS)Object Transaction Service (OTS) Concurrency Control ServiceConcurrency Control Service Security ServiceSecurity Service

Page 39: J2EE--1 J2EE - ENTERPRISE DEVELOPMENT AND INTEROPERABILITY WITH NON-J2EE CLIENTS presented by Sudha Balla, Betsy Cherian and Lance Fiondella Semester Project

J2EE--39

EJB – CORBA INTEROPERABILITYEJB – CORBA INTEROPERABILITY ((CORBACORBA))

Advantages:Advantages: not controlled by one organizationnot controlled by one organization language-independentlanguage-independent

Disadvantages:Disadvantages: Slow-movingSlow-moving Steep learning curveSteep learning curve

Page 40: J2EE--1 J2EE - ENTERPRISE DEVELOPMENT AND INTEROPERABILITY WITH NON-J2EE CLIENTS presented by Sudha Balla, Betsy Cherian and Lance Fiondella Semester Project

J2EE--40

EJB – CORBA INTEROPERABILITYEJB – CORBA INTEROPERABILITY ((OMG’s CCM SpecificationOMG’s CCM Specification))

adds component features to CORBA objectsadds component features to CORBA objects similar to EJBssimilar to EJBs intention that CORBA components and EJBs intention that CORBA components and EJBs

can reside togethercan reside together a CORBA component could appear as if it a CORBA component could appear as if it

were an EJBwere an EJB an EJB could appear as if it were a CORBA an EJB could appear as if it were a CORBA

componentcomponent

Page 41: J2EE--1 J2EE - ENTERPRISE DEVELOPMENT AND INTEROPERABILITY WITH NON-J2EE CLIENTS presented by Sudha Balla, Betsy Cherian and Lance Fiondella Semester Project

J2EE--41

EJB – CORBA INTEROPERABILITYEJB – CORBA INTEROPERABILITY ((Why is CORBA important for EJBs?Why is CORBA important for EJBs?))

Legacy IntegrationLegacy Integration Advanced middleware servicesAdvanced middleware services EJBs exposed to CORBA clientsEJBs exposed to CORBA clients (the (the

highlight of this interoperability section)highlight of this interoperability section)

Page 42: J2EE--1 J2EE - ENTERPRISE DEVELOPMENT AND INTEROPERABILITY WITH NON-J2EE CLIENTS presented by Sudha Balla, Betsy Cherian and Lance Fiondella Semester Project

J2EE--42

EJB – CORBA INTEROPERABILITYEJB – CORBA INTEROPERABILITY ((RMI and IIOP)RMI and IIOP)

Remote Method Invocation(RMI) is a Remote Method Invocation(RMI) is a communications package for performing communications package for performing distributed computing in Javadistributed computing in Java

default protocol layer for communication used default protocol layer for communication used by RMI is Java Remote Method by RMI is Java Remote Method Protocol(JRMP)Protocol(JRMP)

CORBA uses Internet Inter-ORB CORBA uses Internet Inter-ORB Protocol(IIOP) as its default protocol layer for Protocol(IIOP) as its default protocol layer for communicationscommunications

RMI and CORBA are very similar RMI and CORBA are very similar technologiestechnologies

Page 43: J2EE--1 J2EE - ENTERPRISE DEVELOPMENT AND INTEROPERABILITY WITH NON-J2EE CLIENTS presented by Sudha Balla, Betsy Cherian and Lance Fiondella Semester Project

J2EE--43

EJB – CORBA INTEROPERABILITYEJB – CORBA INTEROPERABILITY ((RMI and CORBA)RMI and CORBA)

Problems:Problems: RMI - built specifically for Java and CORBA – built to RMI - built specifically for Java and CORBA – built to

allow language interoperabilityallow language interoperability two technologies are highly incompatibletwo technologies are highly incompatible major portion of a program coded for the RMI API major portion of a program coded for the RMI API

needs to be rewritten if there is a need to switch to needs to be rewritten if there is a need to switch to CORBA and vice versaCORBA and vice versa

prohibits code reuseprohibits code reuse Ideal Scenarios:Ideal Scenarios: Combine client-side Java RMI with server-side Combine client-side Java RMI with server-side

CORBACORBA Combine client-side CORBA with server-side Java Combine client-side CORBA with server-side Java

RMIRMINeed: Need: bridge between RMI and CORBAbridge between RMI and CORBA

Solution: Solution: RMI over IIOPRMI over IIOP

Page 44: J2EE--1 J2EE - ENTERPRISE DEVELOPMENT AND INTEROPERABILITY WITH NON-J2EE CLIENTS presented by Sudha Balla, Betsy Cherian and Lance Fiondella Semester Project

J2EE--44

EJB – CORBA INTEROPERABILITYEJB – CORBA INTEROPERABILITY ((RMI and CORBA – Ideal Scenarios)RMI and CORBA – Ideal Scenarios)

RMI CLIENT

RMI Stub

ORB ORB

CORBA Skeleton

CORBA Object Implementation

RMI Remote RMI Remote

Object InterfaceObject Interface

Network via IIOPNetwork via IIOP

CORBA CLIENT

CORBA Stub

ORB ORB

RMI Skeleton

RMI Object Implementation

Network via IIOPNetwork via IIOP

CORBA Object CORBA Object

InterfaceInterface

Scenario #1Scenario #1 Scenario #2Scenario #2

Page 45: J2EE--1 J2EE - ENTERPRISE DEVELOPMENT AND INTEROPERABILITY WITH NON-J2EE CLIENTS presented by Sudha Balla, Betsy Cherian and Lance Fiondella Semester Project

J2EE--45

EJB – CORBA INTEROPERABILITYEJB – CORBA INTEROPERABILITY ((RMI over IIOP)RMI over IIOP)

unification of RMI and CORBAunification of RMI and CORBA RMI run over IIOP (instead of JRMP)RMI run over IIOP (instead of JRMP) delivers CORBA distributed computing capabilities to the delivers CORBA distributed computing capabilities to the

Java2 platformJava2 platform speeds distributed application development completely in speeds distributed application development completely in

JavaJava code reusability of programs coded with the RMI API and code reusability of programs coded with the RMI API and

the CORBA APIthe CORBA API lessens the impact of switching between the two lessens the impact of switching between the two

technologiestechnologies IIOP eases legacy application and platform integrationIIOP eases legacy application and platform integration IIOP makes RMI more robustIIOP makes RMI more robust

Page 46: J2EE--1 J2EE - ENTERPRISE DEVELOPMENT AND INTEROPERABILITY WITH NON-J2EE CLIENTS presented by Sudha Balla, Betsy Cherian and Lance Fiondella Semester Project

J2EE--46

EJB – CORBA INTEROPERABILITYEJB – CORBA INTEROPERABILITY ((RMI over IIOP : Combinations)RMI over IIOP : Combinations)

CLIENTCLIENT

RMI client with RMI-IIOP RMI client with RMI-IIOP StubStub

RMI client with RMI-IIOP RMI client with RMI-IIOP StubStub

CORBA clientCORBA client

CORBA clientCORBA client

SERVERSERVER

RMI Server with RMI-IIOP RMI Server with RMI-IIOP skeletonskeleton

CORBA object implementationCORBA object implementation

RMI Server with RMI-IIOP RMI Server with RMI-IIOP skeletonskeleton

CORBA object implementationCORBA object implementation

Page 47: J2EE--1 J2EE - ENTERPRISE DEVELOPMENT AND INTEROPERABILITY WITH NON-J2EE CLIENTS presented by Sudha Balla, Betsy Cherian and Lance Fiondella Semester Project

J2EE--47

EJB – CORBA INTEROPERABILITYEJB – CORBA INTEROPERABILITY ((EJB Specification)EJB Specification)

EJB components must be able to run over both EJB components must be able to run over both RMI and RMI-IIOPRMI and RMI-IIOP

RMI-IIOP as an on-the-wire protocol for EJB RMI-IIOP as an on-the-wire protocol for EJB componentscomponents

Advantages to J2EE:Advantages to J2EE: greatly assist the integration of the J2EE environment into greatly assist the integration of the J2EE environment into

existing corporate infrastructures, most of which are quite existing corporate infrastructures, most of which are quite CORBA intensiveCORBA intensive

EJBs could be exposed as CORBA components that could EJBs could be exposed as CORBA components that could be accessed by non-Java Clientsbe accessed by non-Java Clients

relieves EJBs off the constraint that they could be only relieves EJBs off the constraint that they could be only Java based Java based

Page 48: J2EE--1 J2EE - ENTERPRISE DEVELOPMENT AND INTEROPERABILITY WITH NON-J2EE CLIENTS presented by Sudha Balla, Betsy Cherian and Lance Fiondella Semester Project

J2EE--48

EJB – CORBA INTEROPERABILITYEJB – CORBA INTEROPERABILITY ((Scenarios)Scenarios)

RMI-IIOP CLIENT

RMI – IIOP Stub

ORB ORB

RMI-IIOP Skeleton

EJB Object Implementation

EJB Remote EJB Remote

Object InterfaceObject Interface

Network via IIOPNetwork via IIOP

CORBA CLIENT

CORBA Stub

ORB ORB

RMI-IIOP Skeleton

EJB Object Implementation

Network via IIOPNetwork via IIOP

EJB Remote EJB Remote

Object InterfaceObject Interface

Scenario #1Scenario #1 Scenario #2Scenario #2

Page 49: J2EE--1 J2EE - ENTERPRISE DEVELOPMENT AND INTEROPERABILITY WITH NON-J2EE CLIENTS presented by Sudha Balla, Betsy Cherian and Lance Fiondella Semester Project

J2EE--49

Patterns - DefinitionPatterns - Definition

DefinitionDefinition “.. are a collection of J2EE based solutions to

common problems... They extract the core issues of each problem, offering solutions that represent an applicable distillation of theory and practice”.

“ a recurring solution to a problem in a context”

Repository of patterns is called the Design Pattern Repository of patterns is called the Design Pattern CatalogCatalog

Documented according to a Documented according to a templatetemplate Organized in tiersOrganized in tiers

Page 50: J2EE--1 J2EE - ENTERPRISE DEVELOPMENT AND INTEROPERABILITY WITH NON-J2EE CLIENTS presented by Sudha Balla, Betsy Cherian and Lance Fiondella Semester Project

J2EE--50

Patterns - TiersPatterns - Tiers

Presentation Tier Presentation Tier Contains the patterns related to Servlets and

JSP technology. Business TierBusiness Tier

Contains the patterns related to the enterprise beans technology

Integration Tier Integration Tier Contains the patterns related to JMS and JDBC

Page 51: J2EE--1 J2EE - ENTERPRISE DEVELOPMENT AND INTEROPERABILITY WITH NON-J2EE CLIENTS presented by Sudha Balla, Betsy Cherian and Lance Fiondella Semester Project

J2EE--51

J2EE Pattern RelationshipsJ2EE Pattern Relationships

Page 52: J2EE--1 J2EE - ENTERPRISE DEVELOPMENT AND INTEROPERABILITY WITH NON-J2EE CLIENTS presented by Sudha Balla, Betsy Cherian and Lance Fiondella Semester Project

J2EE--52

Presentation TierPresentation Tier

Pattern Name Brief Synopsis

Decorating Filter Facilitates pre and post-processing of a request

Front Controller Provides a centralized controller for managing the handling of a request

View Helper Encapsulates logic that is not related to presentation formatting into Helper components

Composite View Creates an aggregate View from atomic sub-components

Service to Worker Combines a Dispatcher component in coordination with the FrontController and View Helper Patterns.

Dispatcher View Combines a Dispatcher component in coordination with the FrontController and View Helper Patterns, deferring many activities to View processing.

Page 53: J2EE--1 J2EE - ENTERPRISE DEVELOPMENT AND INTEROPERABILITY WITH NON-J2EE CLIENTS presented by Sudha Balla, Betsy Cherian and Lance Fiondella Semester Project

J2EE--53

Business TierBusiness Tier

Business Delegate Decouples presentation and service tiers, and provides a façade and proxy interface to the services.

Value Object Exchanges data between tiers.

Session Facade Hides business object complexity, centralizes workflow handling.

Aggregate Entity Represents a best practice for designing coarse-grained entity beans.

Value Object Assembler

Builds composite value object from multiple data sources.

Value List Handler Manages query execution, results caching and result processing.

Service Locater Hides complexity of business service lookup and creation, locates business service factories.

Page 54: J2EE--1 J2EE - ENTERPRISE DEVELOPMENT AND INTEROPERABILITY WITH NON-J2EE CLIENTS presented by Sudha Balla, Betsy Cherian and Lance Fiondella Semester Project

J2EE--54

Integration TierIntegration Tier

Data Access Object Abstracts data sources, provides transparent access to data.

Service Activator Facilitates asynchronous processing for EJB components.

Page 55: J2EE--1 J2EE - ENTERPRISE DEVELOPMENT AND INTEROPERABILITY WITH NON-J2EE CLIENTS presented by Sudha Balla, Betsy Cherian and Lance Fiondella Semester Project

J2EE--55

Use of Patterns in DMV AppUse of Patterns in DMV App

The following patterns were used in the DMV The following patterns were used in the DMV Application:Application: Front Controller View Helper Session Façade Transfer Object Transfer Object Assembler Data Access Object

Page 56: J2EE--1 J2EE - ENTERPRISE DEVELOPMENT AND INTEROPERABILITY WITH NON-J2EE CLIENTS presented by Sudha Balla, Betsy Cherian and Lance Fiondella Semester Project

J2EE--56

Application PrototypeApplication Prototype(Overview)(Overview)

JBuilder7 EnterpriseJBuilder7 Enterprise JDataStoreJDataStore BES 5BES 5 MS VC++ 5.0 (for non-Java Client)MS VC++ 5.0 (for non-Java Client) MVC architectureMVC architecture

CONTROLLERCONTROLLER(SERVLET & HANDLER)(SERVLET & HANDLER)

MODELMODEL(EJBs & Domain classes)(EJBs & Domain classes)

VIEWVIEW(JSPs & HELPER)(JSPs & HELPER)

Page 57: J2EE--1 J2EE - ENTERPRISE DEVELOPMENT AND INTEROPERABILITY WITH NON-J2EE CLIENTS presented by Sudha Balla, Betsy Cherian and Lance Fiondella Semester Project

J2EE--57

Application PrototypeApplication PrototypeUse Case DiagramUse Case Diagram

Page 58: J2EE--1 J2EE - ENTERPRISE DEVELOPMENT AND INTEROPERABILITY WITH NON-J2EE CLIENTS presented by Sudha Balla, Betsy Cherian and Lance Fiondella Semester Project

J2EE--58

Application PrototypeApplication PrototypeDeployment DiagramDeployment Diagram

Page 59: J2EE--1 J2EE - ENTERPRISE DEVELOPMENT AND INTEROPERABILITY WITH NON-J2EE CLIENTS presented by Sudha Balla, Betsy Cherian and Lance Fiondella Semester Project

J2EE--59

Application PrototypeApplication PrototypeEJBs in the DMV ApplicationEJBs in the DMV Application

Page 60: J2EE--1 J2EE - ENTERPRISE DEVELOPMENT AND INTEROPERABILITY WITH NON-J2EE CLIENTS presented by Sudha Balla, Betsy Cherian and Lance Fiondella Semester Project

J2EE--60

Application PrototypeApplication PrototypeClass DiagramClass Diagram

Page 61: J2EE--1 J2EE - ENTERPRISE DEVELOPMENT AND INTEROPERABILITY WITH NON-J2EE CLIENTS presented by Sudha Balla, Betsy Cherian and Lance Fiondella Semester Project

J2EE--61

Application PrototypeApplication PrototypeApplication Flow and Patterns(1)Application Flow and Patterns(1)

This flow is followed by the Login, Registration This flow is followed by the Login, Registration and License Modulesand License Modules

Page 62: J2EE--1 J2EE - ENTERPRISE DEVELOPMENT AND INTEROPERABILITY WITH NON-J2EE CLIENTS presented by Sudha Balla, Betsy Cherian and Lance Fiondella Semester Project

J2EE--62

Application PrototypeApplication PrototypeApplication Flow and Patterns(2)Application Flow and Patterns(2)

This flow is followed by the Report ModuleThis flow is followed by the Report Module

Page 63: J2EE--1 J2EE - ENTERPRISE DEVELOPMENT AND INTEROPERABILITY WITH NON-J2EE CLIENTS presented by Sudha Balla, Betsy Cherian and Lance Fiondella Semester Project

J2EE--63

Application PrototypeApplication PrototypeEJB exposed to non-Java ClientsEJB exposed to non-Java Clients

Non-Java ClientNon-Java Client(C++ Application)(C++ Application)

TrafficViolationSBTrafficViolationSB(Session Bean)(Session Bean)

LicenseEBLicenseEB(Entity Bean)(Entity Bean)

Looks up the SB as a CORBA componentLooks up the SB as a CORBA component

Finds the License and increments its pointsFinds the License and increments its points

DMV DatabaseDMV Database

Updates the databaseUpdates the database

TrafficViolation ApplicationTrafficViolation Application

DMV ApplicationDMV Application

Page 64: J2EE--1 J2EE - ENTERPRISE DEVELOPMENT AND INTEROPERABILITY WITH NON-J2EE CLIENTS presented by Sudha Balla, Betsy Cherian and Lance Fiondella Semester Project

J2EE--64

Application PrototypeApplication PrototypeEJB exposed to non-Java ClientsEJB exposed to non-Java Clients

Page 65: J2EE--1 J2EE - ENTERPRISE DEVELOPMENT AND INTEROPERABILITY WITH NON-J2EE CLIENTS presented by Sudha Balla, Betsy Cherian and Lance Fiondella Semester Project

J2EE--65

Application PrototypeApplication PrototypeScreen shots(1)Screen shots(1)

  

Page 66: J2EE--1 J2EE - ENTERPRISE DEVELOPMENT AND INTEROPERABILITY WITH NON-J2EE CLIENTS presented by Sudha Balla, Betsy Cherian and Lance Fiondella Semester Project

J2EE--66

Application PrototypeApplication PrototypeScreen shots(2)Screen shots(2)