• No results found

Sales Inventory Management System

N/A
N/A
Protected

Academic year: 2021

Share "Sales Inventory Management System"

Copied!
34
0
0

Loading.... (view fulltext now)

Full text

(1)

Sales Inventory

Management System

Vamshi Ambati

Myung-Joo Ko

Ryan Frenz

Cindy Jen

(2)

2

Team2 Final Presentation S04-17654-A Analysis of Software Artifacts

Team Members

Rfrenz

@andrew.cmu.edu

Ryan Frenz

Cdj

@andrew.cmu.edu

Cindy Jen

Vamshi

@andrew.cmu.edu

Vamshi Ambati

Mko1

@andrew.cmu.edu

Myung-Joo Ko

http://www.ece.cmu.edu/~ece846/team2

(3)

3

Introduction

„

Baseline Application

„

Fault Tolerance

„

Real-time

„

High Performance

„

Conclusion

(4)

Baseline

Application

(5)

5

Baseline Application

…

Menu-Based Client

„

Login, create/view/remove

Sales/Purchase Orders,

Inventory, Users

…

Sales/Purchasing

Management

„

Handle requests to create, view,

or remove sales or purchase

orders, respectively

…

User Management

„

Controls add/view/remove of

users

„

Login/logout

…

Inventory Management

„

Add/view/create inventory

(6)

6

Team2 Final Presentation S04-17654-A Analysis of Software Artifacts

Baseline Application

„

Java-based, 3-tier application

„

Middleware : EJB / Jboss

„

OS : Linux (MS Compatible too)

„

DB : MySql

(7)

7

Baseline Application

„

Why Interesting?

…

Strong data integrity requirements

„

Data seen at any client must be accurate at any given time,

regardless of other clients accessing/modifying it

Item No: 1 Qty: 100 Item No: 1 Qty: 90 Order No: 1 Item No: 1 Qty: 10 Complete Order ? Yes Administrator Salesperson

(8)

8

Team2 Final Presentation S04-17654-A Analysis of Software Artifacts

Baseline Architecture

Client Tier Middle Tier Backend

Database Client

applications

Application Server (JBOSS)

User Item SalesOrder PurchaseOrder EJB Container User Management Purchase Order Management Inventory Management Sales Order Management MySql

Naming Service (JNDI)

AddUser() ViewProfile() GetItemlist() GetItemDetail() PlacePurchaseOrder() GetPurchaseOrderlist() GetPurchaseOrderDetail() PlaceSalesOrder() GetSalesOrderlist() GetSalesOrderDetail() GetOperationId() LogIn() LogOut() Client applications JDBC

Remote Method Invocation Database

(9)

9

Baseline Architecture

4 EJB Patterns

Container Managed Entity Beans with Session Beans

Bean Managed Entity Beans with Session Beans

Entity Beans Only Session Beans Only

SalesServer Remote SalesOrder Local SalesOrder HomeLocal EJB Container Sales OrderBean Sales ServerBean SalesOrder RemoteHome Entity Bean Session Bean Database

Client Tier Middle Tier Backend

(10)

Fault Tolerance +

Baseline

(11)

11

Fault-Tolerance Goals

„

Replicate Sales, Purchasing, Inventory,

User, and Operations Servers

„

Server modules are ‘stateless’

…

we simply store a record of the last

transaction in the database to prevent

duplication in the case of a fault

„

‘Sacred’ Machine

…

Database, Replication Manager,

(12)

12

Team2 Final Presentation S04-17654-A Analysis of Software Artifacts

FT-Baseline Architecture

Primary Replica User Management Purchase Order Management Inventory Management Sales Order Management

Client Tier Backend

Database Client

applications

Middle Tier

Application Server (JBOSS)

MySql

Naming Service (JNDI)

Client applications

JDBC

Remote Method Invocation Database

Server application JNDI call

KEY Operation Tracking Backup Replica User Management Purchase Order Management Inventory Management Sales Order Management Operation Tracking Replication Manager Fault Detector Sacred Machine

(13)

13

Mechanisms for Fail-Over

„

Fail-Over through exception handling

„

Fault-Detection through replication

manager-Crashed replica is restarted upon detection

„

Exceptions Caught:

…

NamingException

„

JNDI is down (and consequently replica)

…

RemoteException

„

JNDI is still up but replica is down

…

CreateException

„

Any DB Problem (unavailable, duplicate create, etc)

…

Create Exception

Æ

notify user (don’t fail over)

…

Naming and Remote

Æ

retry with backup replica

…

Next request

Æ

start over, trying primary first

(14)

14

Team2 Final Presentation S04-17654-A Analysis of Software Artifacts

Mechanisms for Fail-Over

„

Replica references are obtained at time of

request

„

This allows for a simple fault-tolerance model

…

If anything goes wrong while obtaining references, we

assume the worst and fail-over

…

If fault was transient, we’ll be back to primary upon next

request

„

But herein lies the bottleneck

…

Performing JNDI lookup and creating remote object for

the same replica(s) every transaction

…

Big spike in fail-over, due to two lookups (with the first

(15)

15

Fail-Over Measurements

(1)

RTT(1 Client)

0 2000 4000 6000 8000 1 79 157 235 313 391 469 547 625 703 781 859 937 1015 1093 1171 1249 1327 1405 1483 Operation Number (one run through use case)

M ili seco n d RTT( 20 Clients) 0 20000 40000 60000 80000 100000 1 316 631 946 1261 1576 1891 2206 2521 2836 3151 3466 3781 4096 4411 4726 5041 5356 5671 5986

Operation Number (one run through use case)

M ilis e c o n d

(16)

16

Team2 Final Presentation S04-17654-A Analysis of Software Artifacts

Fail-Over Measurements

(2)

JNDI

Lookup

Time

9%

Create

Server

Home

12%

View

User List

79%

View

User List

19%

Create

Server

Home

38%

JNDI

Lookup

Time

43%

(17)

17

Fail-Over Measurements

(3)

View

User List,

28%

Create

Server

Home,

27%

JNDI

Lookup

Time,

45%

Fault Free Case (20 Client)

Faulty Case (20 Client)

JNDI

Lookup

Time,

19%

Create

Server

Home,

25%

View

User List,

56%

(18)

Real Time + FT +

Baseline

(19)

19

RT-FT-Baseline Architecture

(1)

„

Upper-Bound the fail-over

„

Target JNDI bottleneck by simply checking

reference status instead of doing lookup

…

Instead of ‘lookup1-exception-lookup2’,

we want ‘check-failover’

„

Separate JNDI lookups into a background

thread

…

Runs at the beginning of execution, then

sleeps until needed (i.e. when we catch

an exception from the primary server).

(20)

20

Team2 Final Presentation S04-17654-A Analysis of Software Artifacts

„

Fault-Free Case

Æ

thread runs once

and never again

„

Faulty-Case

Æ

thread runs in the

background, caching live references

…

Main execution simply checks if the

primary reference is valid

…

If it is not live, move on to secondary

object and signal the thread to update

the primary

(21)

21

RT-FT-Baseline Architecture

(3)

„

Other Possibilities to bound fail-over

…

Client-Side timeouts to reduce ‘failed’ lookup

times

…

Would bound fail-over to a constant factor of

the timeout value + second lookup

…

However, after implementing the background

thread to cache server references, adding

timeout functionality does not improve

fail-over times in the cases we consider (at least

one ‘live’ server)

…

Did not implement based on these

observations

(22)

22

Team2 Final Presentation S04-17654-A Analysis of Software Artifacts

‘Real-Time’ Fail-Over Measurements

RTT(Caching / 1 Client)

0 2000 4000 6000 8000 1 89 177 265 353 441 529 617 705 793 881 969 1057 1145 1233 1321 1409 1497 Run Number M ili secon d RTT(1 Client) 0 1000 2000 3000 4000 5000 6000 7000 1 90 179 268 357 446 535 624 713 802 891 980 1069 1158 1247 1336 1425 Run Number M ili s ec on d Upper Bound ~ 5900 ms Upper Bound ~ 1500 ms
(23)

23

‘Real-Time’ Fail-Over Measurements

RTT( 20 Clients) 0 20000 40000 60000 80000 100000 1 320 639 958 1277 1596 1915 2234 2553 2872 3191 3510 3829 4148 4467 4786 5105 5424 5743 Run Number M ilis e c o n d RTT(Caching / 20 Clients) 0 20000 40000 60000 80000 100000 1 98 195 292 389 486 583 680 777 874 971 1068 1165 1262 1359 1456 Run Number M ilis e c o n d Upper Bound ~ 78000 ms Upper Bound ~ 6000 ms
(24)

High Performance+

RT+FT+Baseline

(25)

25

High Performance Strategy

„

“Functionality-Based” Load Balancing

…

Motivation

„

Webservers

„

Our Design

…

Benefits

„

Administrative actions do not suffer

„

QOS can be assured by following some

policy to split the functionality

„

Decent level of Load Balancing is achieved

(26)

26

Team2 Final Presentation S04-17654-A Analysis of Software Artifacts

High Performance Architecture

Server1

User Management

Purchase Order Management

Client Tier Backend

Database Client

applications

Middle Tier

Application Server (JBOSS)

MySql

Naming Service (JNDI)

Server2 Inventory Management Sales Order Management Client applications JDBC

Remote Method Invocation Database

Server application JNDI call

(27)

27

Performance Measurements(1)

(28)

28

Team2 Final Presentation S04-17654-A Analysis of Software Artifacts

Performance Measurements(2)

Mean RTT vs. # Clients

0 50 100 150 200 250 300 350 4 8 12 16 20 24 28 32 36 40 # Simultaneous Clients M ean R T T Normal Balanced
(29)
(30)

30

Team2 Final Presentation S04-17654-A Analysis of Software Artifacts

Insights From Measurements

„

FT-Baseline

…

JNDI/Reference lookups take large majority of

RTT, especially in faulty case

…

Even in fault-free, doing the same lookup every

time hurts RTT

„

RT-FT-Baseline

…

Caching of references nearly eliminates ‘spikes’

by reducing JNDI lookup time which is a

bottleneck in Fault tolerant systems

„

High-Performance

(31)

31

Accomplishments

„

Nearly full ‘spike’ reduction with

client-side reference caching (reduced RTT

upper bound by 75% for 1 client, and

92% for 20 clients)

„

Fully-interactive client with automated

test benches

(32)

32

Team2 Final Presentation S04-17654-A Analysis of Software Artifacts

What we learned

„

Working in distributed Teams

…

Thanks to Assignment-1. CVS made life easy

…

Try Subversion

„

JBoss is great but ‘heavy’

…

Startup times, etc make testing difficult

„

Design decisions make project smoother

„

To conquer FT, RT, HP you need to fight 3

battles

…

Keeping the server stateless makes the battle

less complicated

(33)

33

What more could we have done

„

Optimizations on Server

…

Fine-tuning JBOSS may improve the performance

„

Bounded Failover

…

Exception handling, TCP timeouts could be bounded

„

Hard-coded JNDI servers

…

Separate the JNDI from JBOSS

…

Should probably be modularized in a config file or similar

„

Load Balancing

…

Functionality-based + Standard Load balancing Algorithms

„

Use Cases:

…

Authentication

…

Searching

(34)

34

Team2 Final Presentation S04-17654-A Analysis of Software Artifacts

Had we started over !

„

Administrative

…

Would register for the course

„

Technical

Would have

…

thought twice about EJB and JBOSS

…

thought about Operation ID stuffing at

the time of designing the system

(Stateless vs Stateful server)

References

Related documents

1.5.3 The Device saves in the internal memory the fault detection time (to the nearest second), the maximum and minimum current values measured during the fault recording, type

o Discuss the differential diagnosis & treatment of torsion testis (Diploma, April,1991) (Diploma, April,1991) o Give an account on management of renal colic (Diploma, Nov.

health…and your health coverage needs. At Aetna, we’re here to help. Perhaps you’ve just left a group plan. Or you’re looking for an option other than COBRA. You may want to

In This problem, just treat the individual demand curves separately, and solve for the price and quantity separately.. Calculate the consumer surplus for both consumer types. b)

MRP interfaces with OSAS Sales Order, Purchase Order , Inventory and MPM Work Order Processing (required) to provide plant and purchasing management and

Colonizationism versus Abolitionism in the Antebellum North: The Colonizationism versus Abolitionism in the Antebellum North: The Anti-Slavery Society of Hanover College and

1.1 Completers give evidence of planning that recognizes the needs of students, the contexts which must be considered when planning curriculum, and the

• More recently, data have been generated on cell subsets of the innate immune.