49
J2EE PET STORE & .NET PET SHOP Yong-Han Lee & Charles Harsch

J2EE PET STORE &.NET PET SHOP Yong-Han Lee & Charles Harsch

Embed Size (px)

Citation preview

Page 1: J2EE PET STORE &.NET PET SHOP Yong-Han Lee & Charles Harsch

J2EE PET STORE &.NET PET SHOP

Yong-Han Lee & Charles Harsch

Page 2: J2EE PET STORE &.NET PET SHOP Yong-Han Lee & Charles Harsch

Introduction

Project Description

Page 3: J2EE PET STORE &.NET PET SHOP Yong-Han Lee & Charles Harsch

Recapitulation

J2EE Pet Store & .NET Pet Shop Business Model

Page 4: J2EE PET STORE &.NET PET SHOP Yong-Han Lee & Charles Harsch

Purpose of Pet Store & Pet Shop

Illustrate basic usage of J2EE technology and .NET technology

Demonstrate current best practices in system design.

Page 5: J2EE PET STORE &.NET PET SHOP Yong-Han Lee & Charles Harsch

Comparison of J2EE PS and .NET PS

J2EE: platform-independent, JAVA-centric

.NET: Windows-centric and language-neutral

Design goals of J2EE Pet Store and .NET Pet Shop were the same

Almost the same performance

Page 6: J2EE PET STORE &.NET PET SHOP Yong-Han Lee & Charles Harsch

Business Model

PS Business Support System (BSS)(IV)

* PS Customer

* Credit Card service

* Suppliers

* Account

1 ProductCatalog

* Product

Shopping Cart

* Order

*

-owner

*

*

-owner

<<trace>>

<<use>>

1

1

.

Page 7: J2EE PET STORE &.NET PET SHOP Yong-Han Lee & Charles Harsch

Technological Architecture Model

Page 8: J2EE PET STORE &.NET PET SHOP Yong-Han Lee & Charles Harsch

Model of the Sample Applications

Tier Overview Tiered Architecture and used

Technology MVC Patterns Design Patterns Modular Design (for J2EE Pet Store)

Page 9: J2EE PET STORE &.NET PET SHOP Yong-Han Lee & Charles Harsch

Tiered Architecture and used Technology

PS Presentation Tier Business Logic Tier ¡ì PS Data Access Layer ¡í

ASP.NET

C#

ADO.NET¡ì Database ¡í

.NET Objects

Business Entity

C#

C#

.NET Objects

.NET Objects

1

111

Page 10: J2EE PET STORE &.NET PET SHOP Yong-Han Lee & Charles Harsch

Pet Shop multi-tier: Purpose of Tiers

Pet Shop

1111

Presentation Tier Business Logic Tier Data Access Layer (DAL) Business Entity

interact with user,handle simple navigation,manage user session data

Represent the business logicof Pet Shop

Handle the interaction with back enddata stores, including databases,

messaging systems, etc.

Passing data between tiers of theapplication. Refer to business entity

components

Page 11: J2EE PET STORE &.NET PET SHOP Yong-Han Lee & Charles Harsch

Pet Shop: High-Level Logical Architecture

CLR

Pet Shop Business Logic Tier

IIS

Pet Shop DAL

Pet Shop Presentation Tier

ASP.NETWeb Forms

C# Business Components

Data Access Components

*

*

*

Page 12: J2EE PET STORE &.NET PET SHOP Yong-Han Lee & Charles Harsch

General structure of a J2EE multi-tiered application

Page 13: J2EE PET STORE &.NET PET SHOP Yong-Han Lee & Charles Harsch

Technologies used in different tiers and their functionality in J2EE Pet Store

Page 14: J2EE PET STORE &.NET PET SHOP Yong-Han Lee & Charles Harsch

Correspondance of Tiers

Presentation Tier Business Logic Tier Data Access Layer (DAL) Business Entity

Web Tier EJB Tier

.NET

J2EE

Page 15: J2EE PET STORE &.NET PET SHOP Yong-Han Lee & Charles Harsch

Presentation Tier

Page 16: J2EE PET STORE &.NET PET SHOP Yong-Han Lee & Charles Harsch

Components in the Presentation TierComputational Viewpoint – Detail Level 0

Pet Shop Presentation Tier (CV)

User InterfaceComponent

User Interface Component

User Interface Component

User Interface Processing

same

* *

*

*

Pet Shop Business Logic Tier

Page 17: J2EE PET STORE &.NET PET SHOP Yong-Han Lee & Charles Harsch

Pet Shop Presentation Tier: Computational Viewpoint of Components – Level 1

Pet Shop Presentation Tier (CV)

User Interface Component

* *

Process Flow

User Interface Processing

ControlsASP.NET

Page 18: J2EE PET STORE &.NET PET SHOP Yong-Han Lee & Charles Harsch

Files of J2EE Pet Store Web Site Web tier

Page 19: J2EE PET STORE &.NET PET SHOP Yong-Han Lee & Charles Harsch

Middle Tier

Page 20: J2EE PET STORE &.NET PET SHOP Yong-Han Lee & Charles Harsch

Components in the Business Logic TierComputational Viewpoint – Detail Level 0

Data Access Layer

Pet Shop Presentation Tier

Pet Shop Business Logic Tier (CV)

Business Component

Business Component

Business Component

EnterpriseService

EnterpriseService

EnterpriseService

same

same

* * *

* * *

Page 21: J2EE PET STORE &.NET PET SHOP Yong-Han Lee & Charles Harsch

Pet Shop Business Logic Tier: Computational Viewpoint of Components – IT Level

PS Business Logic Tier (CV)

Business Logic Component (CV)

OrderRead.cs Items.cs

OrderInsert.cs Inventory.cs

Account.cs Profile.cs

Cart.cs Product.cs

*

Page 22: J2EE PET STORE &.NET PET SHOP Yong-Han Lee & Charles Harsch

Different enterprise beans in J2EE PS Web Site EJB tier

Page 23: J2EE PET STORE &.NET PET SHOP Yong-Han Lee & Charles Harsch

Implementation of an EJB

ContactInfoEJB

-String familyName-String givenName-Address address-String email-String phone

ContactInfo.java+String getFamilyName()+String setFamilyName()+ContactInfo getData()…...

+Object ejbCreate()+void ejbActivate()+void ejbPassivate()+void ejbRemove()

ContactInfoEJB.java

+String getFamilyName()+String setFamilyName()….

ContactInfoLocal.java

+ContactInfoLocal create()+ContactInfoLocal findByPrimaryKey()

ContactInfoLocalHome.java

Page 24: J2EE PET STORE &.NET PET SHOP Yong-Han Lee & Charles Harsch

EJB in .NET?

Enterprise Services Business Entity

Page 25: J2EE PET STORE &.NET PET SHOP Yong-Han Lee & Charles Harsch

Data Access Layer

Page 26: J2EE PET STORE &.NET PET SHOP Yong-Han Lee & Charles Harsch

Components in the Data Access LayerComputational Viewpoint – Detail Level 0

Pet Shop Business Logic Tier

Data Access Layer (CV)

DAL Component

DAL Component

DAL Component

same

* * *

Page 27: J2EE PET STORE &.NET PET SHOP Yong-Han Lee & Charles Harsch

Pet Shop Data Access Layer: Computational Viewpoint of Components – IT Level

PS DAL Tier (CV)

DAL Component (CV)

DAL Factory (CV) SQL Server DAL (CV)

IDAL (CV) Oracle Server DAL (CV)

SQL Server 2000

Oracle Server

*

Account.cs

Inventory.cs

Item.cs

Order.cs

Product.cs

Profile.cs

IAccount.cs

IInventory.cs

IItem.cs

IOrder.cs

IProduct.cs

IProfile.cs

Account.cs

Inventory.cs

Item.cs

Order.cs

Product.cs

Profile.cs

Account.cs

Inventory.cs

Item.cs

Order.cs

Product.cs

Profile.cs

SQLHelper.cs

OracleHelper.cs

Page 28: J2EE PET STORE &.NET PET SHOP Yong-Han Lee & Charles Harsch

MVC Pattern

Page 29: J2EE PET STORE &.NET PET SHOP Yong-Han Lee & Charles Harsch

Model-View-Controller Pattern

Browser Client

Format Page to display

Determine Page to Display

Manage the behavior and data of the

application domainResponds to requests for information about

its state

Responds to instructions to change

state

Informing MODEL and/or VIEW to change as

appropriate

Interprets mouse and keyboard inputs from user

View

Model

Controller

Page 30: J2EE PET STORE &.NET PET SHOP Yong-Han Lee & Charles Harsch

Model-View-Controller Pattern:« Code behind »

PS Data Access Layer (CV)

PS Business Logic Tier (CV)

PS Business Entity (CV)

Pet Shop Presentation Tier (CV)User Interface Processing

Process Flow (CV)

Controls (CV)

*

*

User Interface Component

Category.aspx

…aspx

Items.aspx

ItemDetails.aspx

EditAccount.aspx

Default.aspx

CreateAccount.aspx

Checkout.aspx

Category.aspx.cs

…aspx.cs

Items.aspx.cs

ItemDetails.aspx.cs

EditAccount.aspx.cs

Default.aspx.cs

CreateAccount.aspx.cs

Checkout.aspx.cs

AccountController.cs

CartController.cs

AddressUI.cs

Banner.cs

Cart.cs

ConfirmAddresses.cs

NavBar.cs

NavBarNoMenu.cs

SignOutNavBar.cs

StaticAddress.cs

Preferences.cs

View Model- Controller

Page 31: J2EE PET STORE &.NET PET SHOP Yong-Han Lee & Charles Harsch

J2EE: Model-View-Controller and corresponding Tiers

Page 32: J2EE PET STORE &.NET PET SHOP Yong-Han Lee & Charles Harsch

Design Patterns

Design Patterns used in J2EE Pet Store Design Patterns used in .NET Pet Shop

Page 33: J2EE PET STORE &.NET PET SHOP Yong-Han Lee & Charles Harsch

Design Patterns used in J2EE Pet Store

Page 34: J2EE PET STORE &.NET PET SHOP Yong-Han Lee & Charles Harsch

In which tiers the Design Patterns are best implemented

Page 35: J2EE PET STORE &.NET PET SHOP Yong-Han Lee & Charles Harsch

Design Patterns and MVC

Page 36: J2EE PET STORE &.NET PET SHOP Yong-Han Lee & Charles Harsch

.NET Design Patterns:Design Patterns used in .NET Pet Shop

1 PS Web Site(CV)

PATTERNS

Intercepting filter Page Cache

Broker

Data Transfer ObjectObserver

Front ControllerPage Controller

Page 37: J2EE PET STORE &.NET PET SHOP Yong-Han Lee & Charles Harsch

.NET Design Patterns:Design Patterns in Tiers

PS Presentation Tier

Business Logic Tier PS Data Access LayerBusiness Entity

11

1

1

Intercepting filter Page Cache

BrokerData Transfer Object

Observer

Front ControllerPage Controller

Page 38: J2EE PET STORE &.NET PET SHOP Yong-Han Lee & Charles Harsch

Model-View-Controller Pattern:Model-Controller separation

PS Data Access Layer (CV)

PS Business Logic Tier (CV)

PS Business Entity (CV)

Pet Shop Presentation Tier (CV)User Interface Processing

Process Flow (CV)

Controls (CV)

*

*

User Interface Component

Category.aspx

…aspx

Items.aspx

ItemDetails.aspx

EditAccount.aspx

Default.aspx

CreateAccount.aspx

Checkout.aspx

Category.aspx.cs

…aspx.cs

Items.aspx.cs

ItemDetails.aspx.cs

EditAccount.aspx.cs

Default.aspx.cs

CreateAccount.aspx.cs

Checkout.aspx.cs

AccountController.cs

CartController.cs

AddressUI.cs

Banner.cs

Cart.cs

ConfirmAddresses.cs

NavBar.cs

NavBarNoMenu.cs

SignOutNavBar.cs

StaticAddress.cs

Preferences.cs

View

Model- Controller

Page Controller

Front Controller

Page 39: J2EE PET STORE &.NET PET SHOP Yong-Han Lee & Charles Harsch

Model-View-Controller Pattern:MVC in Controller Pattern

PS Presentation Tier

User Interface Processing

Controls (CV)

*

AddressUI.ascx.cs

Banner.ascx.cs

Cart.ascx.cs

ConfirmAddresses.ascx.cs

NavBar.ascx.cs

NavBarNoMenu.ascx.cs

SignOutNavBar.ascx.cs

StaticAddress.ascx.cs

Preferences.ascx.cs

Process Flow (CV)

AccountController.cs

CartController.cs

Front ControllerUser Interface Component

AddressUI.ascx

Banner.ascx

Cart.ascx

ConfirmAddresses.ascx

NavBar.ascx

NavBarNoMenu.ascx

SignOutNavBar.ascx

StaticAddress.ascx

Preferences.ascx

Page Controller

Page 40: J2EE PET STORE &.NET PET SHOP Yong-Han Lee & Charles Harsch

Modular Design of J2EE Pet Store

Modular development decouples components from one anotherbenefits: • ease maintenance • simplifies parallel development • provides opportunities for

incorporating third-party components

Page 41: J2EE PET STORE &.NET PET SHOP Yong-Han Lee & Charles Harsch

J2EE Pet Store Modular Design

Page 42: J2EE PET STORE &.NET PET SHOP Yong-Han Lee & Charles Harsch
Page 43: J2EE PET STORE &.NET PET SHOP Yong-Han Lee & Charles Harsch

Implementation of Control Module

Page 44: J2EE PET STORE &.NET PET SHOP Yong-Han Lee & Charles Harsch

Implementation of Catalog Module

Page 45: J2EE PET STORE &.NET PET SHOP Yong-Han Lee & Charles Harsch

Conclusion

Page 46: J2EE PET STORE &.NET PET SHOP Yong-Han Lee & Charles Harsch

Conclusion

No big differences Performance:

.NET a bit better, because efficient caching. .NET PS fewer lines of code, but not

significant. J2EE PS not optimized for performance

Architecture: Both are multi-tiered application with same

functionality .NET uses additional tier, business entity to

track and pass data J2EE uses enterprise beans in EJB tier

Page 47: J2EE PET STORE &.NET PET SHOP Yong-Han Lee & Charles Harsch

Our Website

http://icwww.epfl.ch/~lee/project

Page 48: J2EE PET STORE &.NET PET SHOP Yong-Han Lee & Charles Harsch

Questions?

Page 49: J2EE PET STORE &.NET PET SHOP Yong-Han Lee & Charles Harsch

Thank you for your attention