A Cross-Platform Component Based Ecommerce Framework in.NET Vishwak Rajgopalan Under the guidance of...

42
A Cross-Platform Component Based Ecommerce Framework in .NET Vishwak Rajgopalan Under the guidance of Dr. Daniel Andresen (Major Professor) Dr. Mitchell Neilsen Dr. Gurdip Singh

Transcript of A Cross-Platform Component Based Ecommerce Framework in.NET Vishwak Rajgopalan Under the guidance of...

Page 1: A Cross-Platform Component Based Ecommerce Framework in.NET Vishwak Rajgopalan Under the guidance of Dr. Daniel Andresen (Major Professor) Dr. Mitchell.

A Cross-Platform Component Based Ecommerce Framework in .NET

Vishwak Rajgopalan

Under the guidance of

Dr. Daniel Andresen (Major Professor)

Dr. Mitchell Neilsen

Dr. Gurdip Singh

Page 2: A Cross-Platform Component Based Ecommerce Framework in.NET Vishwak Rajgopalan Under the guidance of Dr. Daniel Andresen (Major Professor) Dr. Mitchell.

Overview Problem Statement Solution Advantages of cross-platform business components Role of web services in cross-platform integration Web Services concepts System Overview System Architecture System Implementation Performance Evaluation Lessons Learnt Conclusion Future Work

Page 3: A Cross-Platform Component Based Ecommerce Framework in.NET Vishwak Rajgopalan Under the guidance of Dr. Daniel Andresen (Major Professor) Dr. Mitchell.

Problem Statement

Integrating homogeneous componentsroutine, relatively smooth

Integrating cross-platform components The Real Challenge?

Page 4: A Cross-Platform Component Based Ecommerce Framework in.NET Vishwak Rajgopalan Under the guidance of Dr. Daniel Andresen (Major Professor) Dr. Mitchell.

Solution

Develop an architecture that

is based on open standards

is platform and language independent

emphasizes on a mode of communication understandable to both systems

Page 5: A Cross-Platform Component Based Ecommerce Framework in.NET Vishwak Rajgopalan Under the guidance of Dr. Daniel Andresen (Major Professor) Dr. Mitchell.

Advantages

Reduces software development lifecycle

Eliminates time spent in testing and debugging the application

Decreases “Time-to-Market” aspect of the web application

Page 6: A Cross-Platform Component Based Ecommerce Framework in.NET Vishwak Rajgopalan Under the guidance of Dr. Daniel Andresen (Major Professor) Dr. Mitchell.

Why Web Services ?

XML based lightweight middleware infrastructure

Based on open standards – SOAP, UDDI, WSDL

Systems that understand HTTP are capable of exposing and consuming web services

Page 7: A Cross-Platform Component Based Ecommerce Framework in.NET Vishwak Rajgopalan Under the guidance of Dr. Daniel Andresen (Major Professor) Dr. Mitchell.

Web Services Based Architecture

Web Services are the middleware that integrate heterogeneous systems over internet/intranets

Page 8: A Cross-Platform Component Based Ecommerce Framework in.NET Vishwak Rajgopalan Under the guidance of Dr. Daniel Andresen (Major Professor) Dr. Mitchell.

Web Services Buzzwords

SOAP (Simple Object Access Protocol) - protocol for transmitting and receiving XML messages over HTTP

WSDL (Web Services Description Language) - describes the interface of a Web Service in a standardized way

UDDI (Universal Description, Discovery and Integration)

- provides a worldwide registry of web services for advertisement, discovery, and integration purposes

Page 9: A Cross-Platform Component Based Ecommerce Framework in.NET Vishwak Rajgopalan Under the guidance of Dr. Daniel Andresen (Major Professor) Dr. Mitchell.

SOAP

Simple Object Access Protocol

Provides a standard packaging structure for transporting XML documents over HTTP, FTP and SMTP.

Defines encoding and binding standards for encoding non-XML RPC invocations in XML for transport

Provides a standard transport mechanism that allows heterogeneous clients to interoperate

Page 10: A Cross-Platform Component Based Ecommerce Framework in.NET Vishwak Rajgopalan Under the guidance of Dr. Daniel Andresen (Major Professor) Dr. Mitchell.

SOAP Message Structure

Page 11: A Cross-Platform Component Based Ecommerce Framework in.NET Vishwak Rajgopalan Under the guidance of Dr. Daniel Andresen (Major Professor) Dr. Mitchell.

Sample SOAP Message

<soap:Envelope>

   <soap:Header>      …………………………………………….   </soap:Header>

   <soap:Body>      <w:GetSecretIdentity

xmlns:w="http://www.wrox.com/heroes/">         <w:codename>XSLT-Man</w:codename>       </w:GetSecretIdentity>    </soap:Body>

</soap:Envelope>

Page 12: A Cross-Platform Component Based Ecommerce Framework in.NET Vishwak Rajgopalan Under the guidance of Dr. Daniel Andresen (Major Professor) Dr. Mitchell.

WSDL

Web Services Description Language

standardizes how a web service represents the input and output parameters of an invocation, the function’s structure, the nature of the invocation

allows disparate clients to understand how to interact with a web service

Page 13: A Cross-Platform Component Based Ecommerce Framework in.NET Vishwak Rajgopalan Under the guidance of Dr. Daniel Andresen (Major Professor) Dr. Mitchell.

<?xml version="1.0" encoding="utf-8" ?> <definitions>

<types> Describes the custom or complex datatypes <s:schema elementFormDefault="qualified" targetNamespace="http://tempuri.org/"> <s:element name="ValidateCardNumber"> <s:complexType> <s:sequence>  <s:element minOccurs="0" maxOccurs="1" name="cardNumber" type="s:string" />   </s:sequence>  </s:complexType>  </s:element> <s:element name="ValidateCardNumberResponse"> <s:complexType> <s:sequence> <s:element minOccurs="1" maxOccurs="1" name="ValidateCardNumberResult" type="s:boolean" /> number and type of return values  </s:sequence>  </s:complexType>  </s:element>  </s:schema>  </types> <message name="ValidateCardNumberSoapIn">

<part name="parameters" element="s0:ValidateCardNumber" />   </message>

<message name="ValidateCardNumberSoapOut"> names of the input amd output SOAP messages <part name="parameters" element="s0:ValidateCardNumberResponse" /> </message>

WSDL Sample

Page 14: A Cross-Platform Component Based Ecommerce Framework in.NET Vishwak Rajgopalan Under the guidance of Dr. Daniel Andresen (Major Professor) Dr. Mitchell.

<portType name="Service1Soap"> <operation name="ValidateCardNumber">  <input message="s0:ValidateCardNumberSoapIn" />   <output message="s0:ValidateCardNumberSoapOut" />   </operation>  </portType><binding name="Service1Soap" type="s0:Service1Soap"> <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" /> <operation name="ValidateCardNumber"> <soap:operation soapAction=http://tempuri.org/ValidateCardNumber style="document" />

<input>  <soap:body use="literal" /> describes

the style,  </input> encoding, and

<output> transport medium  <soap:body use="literal" /> of the SOAP </output> messages  </operation>  </binding> <service name="Service1"> <port name="Service1Soap" binding="s0:Service1Soap">  <soap:address location="http://localhost:7070/BooksOnline/Service1.asmx" /> entry point to the  </port> web service  </service>  </definitions>

WSDL Sample (contd .. )

Page 15: A Cross-Platform Component Based Ecommerce Framework in.NET Vishwak Rajgopalan Under the guidance of Dr. Daniel Andresen (Major Professor) Dr. Mitchell.

UDDI

Universal Discovery, Description and Integration

standardized method for publishing and discovering information about web services

open framework for describing services, discovering businesses, and integrating business services

focuses on the process of discovery

Page 16: A Cross-Platform Component Based Ecommerce Framework in.NET Vishwak Rajgopalan Under the guidance of Dr. Daniel Andresen (Major Professor) Dr. Mitchell.

Web Service Invocation

Page 17: A Cross-Platform Component Based Ecommerce Framework in.NET Vishwak Rajgopalan Under the guidance of Dr. Daniel Andresen (Major Professor) Dr. Mitchell.

System Description

Web-based shopping portal catering to books

Web Application implemented in Microsoft .NET

Generic functionalities are third party business components

implemented as EJB’s.

Page 18: A Cross-Platform Component Based Ecommerce Framework in.NET Vishwak Rajgopalan Under the guidance of Dr. Daniel Andresen (Major Professor) Dr. Mitchell.

Third – Party Business Components

Tax Calculation Service

Shipping Cost Calculation Service

Credit Card Validation Service

- Based on Luhn Algorithm

Page 19: A Cross-Platform Component Based Ecommerce Framework in.NET Vishwak Rajgopalan Under the guidance of Dr. Daniel Andresen (Major Professor) Dr. Mitchell.

Technologies used

ASP.NET, ADO.NET, C# ASP.NET WebMethod Framework J2EE 1.3.1 (EJB) AXIS 1.1 Framework JBOSS 3.2.3 IIS 5.0 Microsoft ACT Apache JMeter

Page 20: A Cross-Platform Component Based Ecommerce Framework in.NET Vishwak Rajgopalan Under the guidance of Dr. Daniel Andresen (Major Professor) Dr. Mitchell.

System Overview

Page 21: A Cross-Platform Component Based Ecommerce Framework in.NET Vishwak Rajgopalan Under the guidance of Dr. Daniel Andresen (Major Professor) Dr. Mitchell.

System Architecture

VENDOR

VENDOR

(.NET)

SOAPPROXY

THIRD PARTY BUSINESS COMPONENT

SOAP SKELETON

EJB

EJB

DATABASE

Page 22: A Cross-Platform Component Based Ecommerce Framework in.NET Vishwak Rajgopalan Under the guidance of Dr. Daniel Andresen (Major Professor) Dr. Mitchell.

Class Diagrams

Buyer Class Diagram

Page 23: A Cross-Platform Component Based Ecommerce Framework in.NET Vishwak Rajgopalan Under the guidance of Dr. Daniel Andresen (Major Professor) Dr. Mitchell.

Class Diagrams (contd..)

Vendor Class Diagram Vendor Module

5 classes

Page 24: A Cross-Platform Component Based Ecommerce Framework in.NET Vishwak Rajgopalan Under the guidance of Dr. Daniel Andresen (Major Professor) Dr. Mitchell.

Use Case: Buyer

Page 25: A Cross-Platform Component Based Ecommerce Framework in.NET Vishwak Rajgopalan Under the guidance of Dr. Daniel Andresen (Major Professor) Dr. Mitchell.

Use Case: Vendor

Page 26: A Cross-Platform Component Based Ecommerce Framework in.NET Vishwak Rajgopalan Under the guidance of Dr. Daniel Andresen (Major Professor) Dr. Mitchell.

Sequence Diagram: Tax Calculation

Page 27: A Cross-Platform Component Based Ecommerce Framework in.NET Vishwak Rajgopalan Under the guidance of Dr. Daniel Andresen (Major Professor) Dr. Mitchell.

Sequence Diagram: Shipping Cost Calculation

Page 28: A Cross-Platform Component Based Ecommerce Framework in.NET Vishwak Rajgopalan Under the guidance of Dr. Daniel Andresen (Major Professor) Dr. Mitchell.

Sequence Diagram: Credit Card Validation

Page 29: A Cross-Platform Component Based Ecommerce Framework in.NET Vishwak Rajgopalan Under the guidance of Dr. Daniel Andresen (Major Professor) Dr. Mitchell.

Demo

Page 30: A Cross-Platform Component Based Ecommerce Framework in.NET Vishwak Rajgopalan Under the guidance of Dr. Daniel Andresen (Major Professor) Dr. Mitchell.

Performance Evaluation: Web Application

No of Iterations (Vs) Response Time (20 users)

WEB SERVER: PRESARIO x1000, 1.8 GHz Centrino®, 512 MB RAM

0

20

40

60

80

100

120

140

0 10 20 30 40 50 60 70

No of Iterations

Avg

Res

pons

e Ti

me

(ms)

.

Java Web Service

.NET Web Service

Page 31: A Cross-Platform Component Based Ecommerce Framework in.NET Vishwak Rajgopalan Under the guidance of Dr. Daniel Andresen (Major Professor) Dr. Mitchell.

Performance Evaluation: Web Application

No of Iterations (Vs) Response Time (40 users)

WEB SERVER: PRESARIO x1000, 1.8 GHz Centrino®, 512 MB RAM

0

20

40

60

80

100

120

140

0 10 20 30 40 50 60 70

No of Iterations

Avg R

esponse T

ime (m

s) .

Java Web Service

.NET Web Service

Page 32: A Cross-Platform Component Based Ecommerce Framework in.NET Vishwak Rajgopalan Under the guidance of Dr. Daniel Andresen (Major Professor) Dr. Mitchell.

Performance Evaluation: Web Application

No of Threads (Vs) Response Time WEB SERVER: PRESARIO x1000, 1.8 GHz Centrino®, 512 MB RAM

0

10

20

30

40

50

60

70

80

0 20 40 60 80

No of Threads

Avg R

esponse T

ime (m

s)

.

Java WS

.NET WS

Page 33: A Cross-Platform Component Based Ecommerce Framework in.NET Vishwak Rajgopalan Under the guidance of Dr. Daniel Andresen (Major Professor) Dr. Mitchell.

Performance Evaluation: Web Service

No of Iterations (Vs) Response Time (20 users) WEB SERVER: PRESARIO x1000, 1.8 GHz Centrino®, 512 MB RAM

0

5

10

15

20

25

30

35

40

45

0 10 20 30 40 50

No Of Iterations

Avg

Res

ponse

Tim

e (m

s) .

Java Web Service

.NET Web Service

Page 34: A Cross-Platform Component Based Ecommerce Framework in.NET Vishwak Rajgopalan Under the guidance of Dr. Daniel Andresen (Major Professor) Dr. Mitchell.

Performance Evaluation: Web Service

No of Iterations (Vs) Response Time (40 users) WEB SERVER: PRESARIO x1000, 1.8 GHz Centrino®, 512 MB RAM

0

5

10

15

20

25

30

0 10 20 30 40 50

No of Iterations

Avg

Res

pons

e Ti

me

(ms)

.

Java Web Service

.NET Web Service

Page 35: A Cross-Platform Component Based Ecommerce Framework in.NET Vishwak Rajgopalan Under the guidance of Dr. Daniel Andresen (Major Professor) Dr. Mitchell.

Results

The web application irrespective of the type of web service it consumed showed similar performance.

For web application CPU usage was at 90% - 95% Theoretically, a web application consuming a .NET web service should

perform better. Individually, a .NET web service showed better performance over a

Java web service as expected. For individual web services CPU usage at 70% - 75%

Page 36: A Cross-Platform Component Based Ecommerce Framework in.NET Vishwak Rajgopalan Under the guidance of Dr. Daniel Andresen (Major Professor) Dr. Mitchell.

Analysis

High CPU usage (95%) and page fault rates overshadowed gains obtained from consuming a .NET web service as opposed to a Java web service

For individual web services, gains from the .NET web service overshadowed CPU usage (75%) and page fault rates

Page 37: A Cross-Platform Component Based Ecommerce Framework in.NET Vishwak Rajgopalan Under the guidance of Dr. Daniel Andresen (Major Professor) Dr. Mitchell.

Implementation Issues

Making wsdl files generated by AXIS accessible to the .NET system

Setting up the requisite permissions to allow the .NET system access to host web pages on the notebook.

Insufficient documentation on interoperability between .NET and J2EE technologies.

JBoss .NET or AXIS ? Working simultaneously with both .NET and J2EE API’s.

Page 38: A Cross-Platform Component Based Ecommerce Framework in.NET Vishwak Rajgopalan Under the guidance of Dr. Daniel Andresen (Major Professor) Dr. Mitchell.

Lessons Learned

Cross-platform component integration through web services

Java and .NET API’s available for exposing business components as web services.

Role of JBoss and Axis in deploying stateless EJB’s as web services

Page 39: A Cross-Platform Component Based Ecommerce Framework in.NET Vishwak Rajgopalan Under the guidance of Dr. Daniel Andresen (Major Professor) Dr. Mitchell.

Conclusion

Microsoft .NET and Axis need optimizations to identify and expose cross-platform components as web services

Cross-platform integration reduces the communication speed of the web application.

Cross-platform integration not suitable for web applications that require speedy communication with business components

Page 40: A Cross-Platform Component Based Ecommerce Framework in.NET Vishwak Rajgopalan Under the guidance of Dr. Daniel Andresen (Major Professor) Dr. Mitchell.

Future Work

Improving security by using extending SOAP headers to carry authentication information

Including and exposing package tracking facilities as web services to obtain real-time data on orders.

Using the API’s provided by .NET and J2EE for working with XML for analyzing inventories, and generating order invoices

Organizations working on extending JSR to bring stateful beans and CMP’s under the purview of web services

Page 41: A Cross-Platform Component Based Ecommerce Framework in.NET Vishwak Rajgopalan Under the guidance of Dr. Daniel Andresen (Major Professor) Dr. Mitchell.

References

http://www.msdn.com http://ws.apache.org/axis http://www.onjava.com/pub/a/onjava/2002/06/05/axis.html http://www.thirdm.com/articles/alesso.htm http://jakarta.apache.org/jmeter/usermanual/index.html http://helponline.oracle.com/jdeveloper http://www.research.ibm.com/journal http://javaboutique.internet.com/tutorials/JMeter/ http://www.jboss.org/index.html?module=bb http://nagoya.apache.org/wiki/apachewiki.cgi?AxisProjectPages/DotNetInterop http://www.vbip.com/books/1861005091/chapter_5091_01.asp

Page 42: A Cross-Platform Component Based Ecommerce Framework in.NET Vishwak Rajgopalan Under the guidance of Dr. Daniel Andresen (Major Professor) Dr. Mitchell.

Questions ?