26
Enterprise Component Comparison--1 Enterprise Component Comparison: Enterprise Component Comparison: An Examination of J2EE, CORBA, and .NET An Examination of J2EE, CORBA, and .NET presented by Seth Freeman, Phil Griffith and Frank Manni Semester Project- Midterm Presentation CSE333 – Distributed Component Systems (FALL 2005) Instructor Prof. Steven A. Demurjian Department of Computer Science and Engineering University of Connecticut [email protected] [email protected] [email protected] [email protected]

Enterprise Component Comparison--1 Enterprise Component Comparison: An Examination of J2EE, CORBA, and.NET presented by Seth Freeman, Phil Griffith and

  • View
    234

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Enterprise Component Comparison--1 Enterprise Component Comparison: An Examination of J2EE, CORBA, and.NET presented by Seth Freeman, Phil Griffith and

Enterprise Component Comparison--1

Enterprise Component Comparison:Enterprise Component Comparison:An Examination of J2EE, CORBA, and .NETAn Examination of J2EE, CORBA, and .NET

presented bySeth Freeman, Phil Griffith and Frank Manni

Semester Project- Midterm PresentationCSE333 – Distributed Component Systems (FALL 2005)

InstructorProf. Steven A. Demurjian

Department of Computer Science and EngineeringUniversity of Connecticut

[email protected]@[email protected]@yahoo.com

Page 2: Enterprise Component Comparison--1 Enterprise Component Comparison: An Examination of J2EE, CORBA, and.NET presented by Seth Freeman, Phil Griffith and

Enterprise Component Comparison--2

Outline of PresentationOutline of Presentation

IntroductionIntroduction Project ChangesProject Changes .NET Material.NET Material J2EE MaterialJ2EE Material CORBA MaterialCORBA Material ExperimentsExperiments Future ResearchFuture Research

Page 3: Enterprise Component Comparison--1 Enterprise Component Comparison: An Examination of J2EE, CORBA, and.NET presented by Seth Freeman, Phil Griffith and

Enterprise Component Comparison--3

Project DescriptionProject Description

Compare and Contrast the 3 Technologies Compare and Contrast the 3 Technologies J2EE, .NET, and CORBA.J2EE, .NET, and CORBA.

Evaluate the Three in These Four Areas: Evaluate the Three in These Four Areas: Database Connectivity Security Web Services Interoperability

GOAL: To Analyze Which Areas in J2EE or .NET GOAL: To Analyze Which Areas in J2EE or .NET is Better Suited to Be Used for Application is Better Suited to Be Used for Application Development. Also to Determine in Which Areas Development. Also to Determine in Which Areas CORBA Can Be Beneficial.CORBA Can Be Beneficial.

Page 4: Enterprise Component Comparison--1 Enterprise Component Comparison: An Examination of J2EE, CORBA, and.NET presented by Seth Freeman, Phil Griffith and

Enterprise Component Comparison--4

Project ScopeProject Scope

Database ConnectivityDatabase Connectivity Determine Components Involved. Examine the Underlying Functionality of

Establishing a Connection to a Database. In the End We Will Also Compare the

Performance of J2EE and .NET in Updating and Querying a Real World Database.

Web ServicesWeb Services Analyze the Techniques to Develop and Deploy

Web Services for the Three Technologies. Observe the Ease of Use Determine the Support of Each for Web Services.

Page 5: Enterprise Component Comparison--1 Enterprise Component Comparison: An Examination of J2EE, CORBA, and.NET presented by Seth Freeman, Phil Griffith and

Enterprise Component Comparison--5

Project ScopeProject Scope

SecuritySecurity The Goal Here is to Determine the Built-in

Capabilities of Authorization, Authentication, and Encryption.

Then Analyze the Functionality of These Primitives Within the Framework.

InteroperabilityInteroperability The Final Part of the Project is to Investigate the

Middleware Interoperability of .NET/J2EE Components.

More Specifically the Focus Will Be on Remote Communication in .NET vs. RMI/RPC (J2EE).

And Also Observe How Components Interact With Heterogeneous Components.

Page 6: Enterprise Component Comparison--1 Enterprise Component Comparison: An Examination of J2EE, CORBA, and.NET presented by Seth Freeman, Phil Griffith and

Enterprise Component Comparison--6

Project ChangesProject Changes

Changed the Multi-threading Section to Interoperability, Focusing on the Previously Mentioned Concepts.

Updated the Database Interoperability Section to Database Connectivity.

Added Experimentation to Database Connectivity and Web Services.

Refined What We Are Examining for Security and Web Services.

Page 7: Enterprise Component Comparison--1 Enterprise Component Comparison: An Examination of J2EE, CORBA, and.NET presented by Seth Freeman, Phil Griffith and

Enterprise Component Comparison--7

.NET Overview.NET Overview

The .NET Architecture is Very XML Oriented and is The .NET Architecture is Very XML Oriented and is Mostly Comprised of 2 Main Components.Mostly Comprised of 2 Main Components. Common Language Runtime (CLR)-Responsible for

Providing the Run Time Environment The CLR Consists of Many Components Including the Garbage Collector, Class Loader, Thread Support, Security Engine, Etc.

The Class Library Provides a Common Type System Shared Among All of the Languages.

ADO.NET is the Interface That Allows for Database ADO.NET is the Interface That Allows for Database Connectivity. The New Dataset Class Coupled With XML Connectivity. The New Dataset Class Coupled With XML is the Backbone for .NET Database Interaction.is the Backbone for .NET Database Interaction.

The Language ASP.NET is Used to Develop Web The Language ASP.NET is Used to Develop Web Services. In Addition .NET Contains Tools for Deploying Services. In Addition .NET Contains Tools for Deploying and Publishing Web Services.and Publishing Web Services.

Page 8: Enterprise Component Comparison--1 Enterprise Component Comparison: An Examination of J2EE, CORBA, and.NET presented by Seth Freeman, Phil Griffith and

Enterprise Component Comparison--8

ADO.NET OverviewADO.NET Overview

ADO.NET is the New Database Technology of ADO.NET is the New Database Technology of the .NET Platform. the .NET Platform.

ADO is a Language Independent Model That is the ADO is a Language Independent Model That is the Major Benefit of Microsoft's Universal Data Access Major Benefit of Microsoft's Universal Data Access Strategy.Strategy.

.NET Includes Data Providers for Several Types of .NET Includes Data Providers for Several Types of Databases Including Oracle, OLE, and SQL Server. Databases Including Oracle, OLE, and SQL Server.

The Underlying Technique of ADO.NET is the The Underlying Technique of ADO.NET is the Dataset Which Promotes a Disconnected Technique Dataset Which Promotes a Disconnected Technique Where Data Will be Represented in Local Memory.Where Data Will be Represented in Local Memory.

Page 9: Enterprise Component Comparison--1 Enterprise Component Comparison: An Examination of J2EE, CORBA, and.NET presented by Seth Freeman, Phil Griffith and

Enterprise Component Comparison--9

ADO.NET –DataSet and other ADO.NET –DataSet and other ComponentsComponents

The DataAdapter is The DataAdapter is Responsible for Filling in the Responsible for Filling in the Data Set Object With Data and Data Set Object With Data and Schema Information. The Schema Information. The DataAdapter Works in DataAdapter Works in Conjunction With the Conjunction With the DataReader Class to Fill the DataReader Class to Fill the DataSet Object.DataSet Object.

The DataReader Class Can The DataReader Class Can Only Read From a Database. Only Read From a Database. The Object Contains One Row The Object Contains One Row of Data. Must Reconnect to of Data. Must Reconnect to Get the Subsequent Rows. Get the Subsequent Rows.

The DataSet Is Broken Down The DataSet Is Broken Down Into 2 Subcomponents the Into 2 Subcomponents the DataTable Class and a DataTable Class and a Collection of Relationships for Collection of Relationships for the Corresponding Tables.the Corresponding Tables.

Page 10: Enterprise Component Comparison--1 Enterprise Component Comparison: An Examination of J2EE, CORBA, and.NET presented by Seth Freeman, Phil Griffith and

Enterprise Component Comparison--10

.NET and Web Services.NET and Web Services

Microsoft Makes Use of XML (Over the SOAP and HTTP Microsoft Makes Use of XML (Over the SOAP and HTTP Protocols) in its .NET Framework for Implementing Web Protocols) in its .NET Framework for Implementing Web Services. The Main Reason is That With XML the Client Services. The Main Reason is That With XML the Client Does Not Need to Know the Language the Web Services Does Not Need to Know the Language the Web Services Are Implemented in. Are Implemented in.

The Client Just Needs to Know the Location and Available The Client Just Needs to Know the Location and Available Methods of the Web Service to Use It. Methods of the Web Service to Use It.

There Are 4 Components in the .Net Infrastructure That There Are 4 Components in the .Net Infrastructure That Allow Clients to Find and Use Web Services.Allow Clients to Find and Use Web Services. Directory Discovery Description Wire format

Page 11: Enterprise Component Comparison--1 Enterprise Component Comparison: An Examination of J2EE, CORBA, and.NET presented by Seth Freeman, Phil Griffith and

Enterprise Component Comparison--11

Web Services ComponentsWeb Services Components

ClientClient

Web Web ServiceService

Directory Directory ServiceService

11

22

3.3.

4. 4.

Page 12: Enterprise Component Comparison--1 Enterprise Component Comparison: An Examination of J2EE, CORBA, and.NET presented by Seth Freeman, Phil Griffith and

Enterprise Component Comparison--12

Web Service ComponentsWeb Service Components

1. Directory- Client Contacts a Directory Service Server 1. Directory- Client Contacts a Directory Service Server (UDDI- (UDDI- http://http://uddiuddi..microsoftmicrosoft.org.org). The Server Will Return ). The Server Will Return the URL of the Discovery Document of the Web Service.the URL of the Discovery Document of the Web Service.

2. Discovery- Uses the URL to Fetch the Discovery 2. Discovery- Uses the URL to Fetch the Discovery Document of the Web Service. This is an XML Document Document of the Web Service. This is an XML Document With Information About the Web Service Description.With Information About the Web Service Description.

3. Description- The Client Requests the Description 3. Description- The Client Requests the Description Document is a WSDL File Which Contains the SOAP Document is a WSDL File Which Contains the SOAP Format of Messages When the Client Wants to Call a Format of Messages When the Client Wants to Call a Method of the Web Service.Method of the Web Service.

4. Wire Format- The Protocols Any System Will Know 4. Wire Format- The Protocols Any System Will Know Like HTTP and SOAP. This Allows the Communication to Like HTTP and SOAP. This Allows the Communication to Occur Between Both Sides of Any Type Since They Will Occur Between Both Sides of Any Type Since They Will Know of Such Protocols.Know of Such Protocols.

Page 13: Enterprise Component Comparison--1 Enterprise Component Comparison: An Examination of J2EE, CORBA, and.NET presented by Seth Freeman, Phil Griffith and

Enterprise Component Comparison--13

J2EE OverviewJ2EE Overview

J2SE consists of rich programming API running on J2SE consists of rich programming API running on top of Java Virtual Machinetop of Java Virtual Machine

J2EE Extends J2SE by Adding Support forJ2EE Extends J2SE by Adding Support for EnterEnterprise Java Beansprise Java Beans

Server-side Components That Encapsulate the Business Server-side Components That Encapsulate the Business Logic of an ApplicationLogic of an Application

Java ServletsJava ServletsJava Programs That Extend Functionality of a ServerJava Programs That Extend Functionality of a Server

JaJava Server Pagesva Server PagesHTML Documents Embedded With Java CodeHTML Documents Embedded With Java Code

XML TechnologiesXML TechnologiesPackages such as Java API for XML Processing Packages such as Java API for XML Processing (JAXP) to Facilitate Transfer of Data(JAXP) to Facilitate Transfer of Data

Web ServicesWeb ServicesPackages such as Java API for XML-based RPC (JAX-Packages such as Java API for XML-based RPC (JAX-RPC) to Support Cross Platform CommunicationRPC) to Support Cross Platform Communication

Page 14: Enterprise Component Comparison--1 Enterprise Component Comparison: An Examination of J2EE, CORBA, and.NET presented by Seth Freeman, Phil Griffith and

Enterprise Component Comparison--14

JDBCJDBC

J2EE Applications Interact With Databases J2EE Applications Interact With Databases Through Java Database Connectivity (JDBC) APIThrough Java Database Connectivity (JDBC) API

JDBC Supports Four Types of DriversJDBC Supports Four Types of Drivers JDBC-ODBC Bridge Native-API Partly Java Bridge JDBC-NET Pure Java Driver Native-protocol Pure Driver Java

Drivers Return a Drivers Return a ConnectionConnection Object Which Object Which Represents a Connection to the DatabaseRepresents a Connection to the Database

StatementStatement Objects Contain Methods to Pass SQL Objects Contain Methods to Pass SQL Statements to Database and Return ResultsStatements to Database and Return Results

ResultSetResultSet Objects Contain the Results of SQL Objects Contain the Results of SQL QueriesQueries Scrollable, Updateable, Holdable

Page 15: Enterprise Component Comparison--1 Enterprise Component Comparison: An Examination of J2EE, CORBA, and.NET presented by Seth Freeman, Phil Griffith and

Enterprise Component Comparison--15

JDBC FeaturesJDBC Features

Prepared Statements Objects Allow You to Send to Prepared Statements Objects Allow You to Send to the Database SQL Commands That Contain the Database SQL Commands That Contain Placeholders (Variables)Placeholders (Variables) The Placeholders Must Be Set Before

Execution They Can Be Reset to Different Values

Transactions Ensure the Database Always Remains Transactions Ensure the Database Always Remains in a Consistent Statein a Consistent State By Default, Each Statement Object is its Own

Transaction You Can Explicitly Handle Transaction

Management by commit and rollback Methods Savepoints in JDBC 3.0 Allow You to Save the

State at a Given Point, Which at a Later Point the Database Can Be Rolled Back to

Page 16: Enterprise Component Comparison--1 Enterprise Component Comparison: An Examination of J2EE, CORBA, and.NET presented by Seth Freeman, Phil Griffith and

Enterprise Component Comparison--16

J2EE – Web ServicesJ2EE – Web Services

Web Services are created in J2EE using the Web Services are created in J2EE using the following:following: Java API for XML-based RPC (JAX-RPC) SOAP with Attachments API for Java (SAAJ) Java API for XML Registries (JAXP) Java API for XML Processing (JAXP)

JAX-RPC is the most commonly usedJAX-RPC is the most commonly used JAX-RPC is basically Java RMI over SOAPJAX-RPC is basically Java RMI over SOAP JAX-RPC is used toJAX-RPC is used to

Implement J2EE Web Service clients that can connect to Web Service endpoints on other platforms

Implement Web Service endpoints for clients to connect to

Page 17: Enterprise Component Comparison--1 Enterprise Component Comparison: An Examination of J2EE, CORBA, and.NET presented by Seth Freeman, Phil Griffith and

Enterprise Component Comparison--17

J2EE – Web Service ClientJ2EE – Web Service Client

Three ways for a client to invoke a Web Services Three ways for a client to invoke a Web Services methods aremethods are Static stubs Dynamic proxy Dynamic invocation interface (DII)

Static Stubs (Generated Stubs) are created at Static Stubs (Generated Stubs) are created at development timedevelopment time

Dynamic Proxy – stub classes are created at Dynamic Proxy – stub classes are created at runtimeruntime

Dynamic Invocation Interface – Client can call web Dynamic Invocation Interface – Client can call web services which it has no Service Definition services which it has no Service Definition Interface or stubsInterface or stubs

Page 18: Enterprise Component Comparison--1 Enterprise Component Comparison: An Examination of J2EE, CORBA, and.NET presented by Seth Freeman, Phil Griffith and

Enterprise Component Comparison--18

J2EE – Web Services EndpointJ2EE – Web Services Endpoint

JAX-RPC Defines Two Ways to Create J2EE Web JAX-RPC Defines Two Ways to Create J2EE Web Service EndpointsService Endpoints JAX-RPC Endpoints Enterprise Java Beans (EJB) Endpoints

JAX-RPC Endpoints Are a Type of Java Servlet JAX-RPC Endpoints Are a Type of Java Servlet That Have Been Adapted for Use As a Web That Have Been Adapted for Use As a Web Services ComponentServices Component Easy to Implement

EJB Endpoint is an EJB Component That Provides EJB Endpoint is an EJB Component That Provides the Same Functionality of an EJB, but Is the Same Functionality of an EJB, but Is Specifically Designed to Handle SOAP RequestsSpecifically Designed to Handle SOAP Requests Provides Large Amount of Functionality

Page 19: Enterprise Component Comparison--1 Enterprise Component Comparison: An Examination of J2EE, CORBA, and.NET presented by Seth Freeman, Phil Griffith and

Enterprise Component Comparison--19

CORBA OverviewCORBA Overview

Common Object Request Broker ArchitectureCommon Object Request Broker Architecture

1.1. Middleware That Facilities Communication Across Middleware That Facilities Communication Across Different Software Platforms.Different Software Platforms.

2.2. Object-Oriented — User Defines Objects and Object-Oriented — User Defines Objects and Methods on Those Objects.Methods on Those Objects.

3.3. Objects Have Interfaces That Are Used to Directly Objects Have Interfaces That Are Used to Directly Reference the Object.Reference the Object.

4.4. Object Request Broker (ORB) — Manages Object Request Broker (ORB) — Manages Requests to the Various Objects.Requests to the Various Objects.

5.5. Interface Definition Language (IDL) — Directions Interface Definition Language (IDL) — Directions on How to Reference an Object.on How to Reference an Object.

6.6. Stubs vs. Skeletons — Client Calls a Stub. Stubs vs. Skeletons — Client Calls a Stub. Skeletons Reference the Implementation.Skeletons Reference the Implementation.

Page 20: Enterprise Component Comparison--1 Enterprise Component Comparison: An Examination of J2EE, CORBA, and.NET presented by Seth Freeman, Phil Griffith and

Enterprise Component Comparison--20

CORBA: Simple ViewCORBA: Simple View

Page 21: Enterprise Component Comparison--1 Enterprise Component Comparison: An Examination of J2EE, CORBA, and.NET presented by Seth Freeman, Phil Griffith and

Enterprise Component Comparison--21

CORBA and DatabasesCORBA and Databases

Generally, the Implementation of an Object in Generally, the Implementation of an Object in CORBA is What Connects to a Database.CORBA is What Connects to a Database.

That Implementation Depends on What Platform That Implementation Depends on What Platform You Use (JDBC If You Use Java, ADO.NET If You Use (JDBC If You Use Java, ADO.NET If You Use C#)You Use C#)

Databases Are Somewhat Irrelevant to CORBA Databases Are Somewhat Irrelevant to CORBA Itself — CORBA Applications Do Use Databases Itself — CORBA Applications Do Use Databases But They Aren’t a Part of CORBA — They Are a But They Aren’t a Part of CORBA — They Are a Part of the Object Itself.Part of the Object Itself.

Page 22: Enterprise Component Comparison--1 Enterprise Component Comparison: An Examination of J2EE, CORBA, and.NET presented by Seth Freeman, Phil Griffith and

Enterprise Component Comparison--22

CORBA Model with DatabaseCORBA Model with Database

CORBA Referencing a Database.CORBA Referencing a Database.

Page 23: Enterprise Component Comparison--1 Enterprise Component Comparison: An Examination of J2EE, CORBA, and.NET presented by Seth Freeman, Phil Griffith and

Enterprise Component Comparison--23

CORBA and Web ServicesCORBA and Web Services

Merging the Two Has Become Straightforward:Merging the Two Has Become Straightforward: CORBA Manages the Implementations of the CORBA Manages the Implementations of the

Objects.Objects. Can Take an IDL and Define a WSDL From Can Take an IDL and Define a WSDL From

it.it. Client Takes the WSDL, and is Ready to Go.Client Takes the WSDL, and is Ready to Go.

Some Backend Work That Needs to Be Done:Some Backend Work That Needs to Be Done: SOAP is Text-based, Needs to Be Converted

Into Binary. (CORBA Uses Binary Messages) Certain Messages Can’t Be Sent Easily

Through CORBA (pdf documents, .doc, Etc)

Page 24: Enterprise Component Comparison--1 Enterprise Component Comparison: An Examination of J2EE, CORBA, and.NET presented by Seth Freeman, Phil Griffith and

Enterprise Component Comparison--24

CORBA vs. Web ServicesCORBA vs. Web Services

But Which One is Better?But Which One is Better? CORBA and Web Services Provide Similar Functionality. CORBA and Web Services Provide Similar Functionality.

Both Deal With Remote Methods Across Platforms.Both Deal With Remote Methods Across Platforms. CORBA Has Done What Web Services Does for Years.CORBA Has Done What Web Services Does for Years. But CORBA Can’t Easily Go Across the Internet. Web But CORBA Can’t Easily Go Across the Internet. Web

Services Can and Do.Services Can and Do. Web Services Data is Easy to Understand—text Based.Web Services Data is Easy to Understand—text Based. But Lots of Competing Protocols for Web Services? But Lots of Competing Protocols for Web Services? Web Services Tend to Be Slower—need to Parse XML, Web Services Tend to Be Slower—need to Parse XML,

More Data to Send, Congestion at Port 80…More Data to Send, Congestion at Port 80…

Need to Do More Research to Answer This Question…if Need to Do More Research to Answer This Question…if There is an Answer.There is an Answer.

Page 25: Enterprise Component Comparison--1 Enterprise Component Comparison: An Examination of J2EE, CORBA, and.NET presented by Seth Freeman, Phil Griffith and

Enterprise Component Comparison--25

Future WorkFuture Work

Continue Our Research About Security and Continue Our Research About Security and InteroperabilityInteroperability

More About Web Services vs. CORBAMore About Web Services vs. CORBA Experimentation:Experimentation:

Compare J2EE/.NET in Terms of Database Compare J2EE/.NET in Terms of Database Performance and Web ServicesPerformance and Web Services

Compare CORBA Invocation With Web Compare CORBA Invocation With Web Services Invocation for PerformanceServices Invocation for Performance

Test Ease of Development for SecurityTest Ease of Development for Security Remote Method Tests for All Three PlatformsRemote Method Tests for All Three Platforms..

Page 26: Enterprise Component Comparison--1 Enterprise Component Comparison: An Examination of J2EE, CORBA, and.NET presented by Seth Freeman, Phil Griffith and

Enterprise Component Comparison--26

Questions?Questions?

Any Questions?Any Questions?