Title: A Cross-Platform Component Based Ecommerce Framework in .NET
1A 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
2Overview
- 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
3 Problem Statement
- Integrating homogeneous components
- routine, relatively smooth
- Integrating cross-platform components
- The Real Challenge?
4Solution
- Develop an architecture that
- is based on open standards
- is platform and language independent
- emphasizes on a mode of communication
understandable to both systems
5Advantages
- Reduces software development lifecycle
- Eliminates time spent in testing and debugging
the application - Decreases Time-to-Market aspect of the web
application
6Why 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
7Web Services Based Architecture
- Web Services are the middleware that integrate
heterogeneous systems over internet/intranets
8Web 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
9SOAP
- 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
10SOAP Message Structure
11Sample SOAP Message
- ltsoapEnvelopegt
- ltsoapHeadergt
.
lt/soapHeadergt - ltsoapBodygt
ltwGetSecretIdentity -
xmlnsw"http//www.wrox.com/heroes/"gt
ltwcodenamegtXSLT-Manlt/wcodenam
egt lt/wGetSecretIdentitygt
lt/soapBodygt - lt/soapEnvelopegt
12WSDL
- Web Services Description Language
- standardizes how a web service represents the
input and output parameters of an invocation, the
functions structure, the nature of the
invocation - allows disparate clients to understand how to
interact with a web service
13WSDL Sample
- lt?xml version"1.0" encoding"utf-8" ?gt
- ltdefinitionsgt
- lttypesgt
Describes the custom or complex
datatypes - ltsschema elementFormDefault"qualified"
targetNamespace"http//tempuri.org/"gt - ltselement name"ValidateCardNumber"gt
- ltscomplexTypegt
- ltssequencegt
- ltselement minOccurs"0" maxOccurs"1"
name"cardNumber" type"sstring" /gt - lt/ssequencegt
- lt/scomplexTypegt
- lt/selementgt
- ltselement name"ValidateCardNumberResponse"gt
- ltscomplexTypegt
- ltssequencegt
- ltselement minOccurs"1" maxOccurs"1"
name"ValidateCardNumberResult" type"sboolean"
/gt number and type
of return values - lt/ssequencegt
- lt/scomplexTypegt
- lt/selementgt
- lt/sschemagt
14WSDL Sample (contd .. )
- ltportType name"Service1Soap"gt
- ltoperation name"ValidateCardNumber"gt
- ltinput message"s0ValidateCardNumberSoapIn" /gt
- ltoutput message"s0ValidateCardNumberSoapOut"
/gt - lt/operationgt
- lt/portTypegt
- ltbinding name"Service1Soap" type"s0Service1Soap
"gt - ltsoapbinding transport"http//schemas.xmlsoap.o
rg/soap/http" style"document" /gt - ltoperation name"ValidateCardNumber"gt
- ltsoapoperation soapActionhttp//tempur
i.org/ValidateCardNumber - style"document" /gt
- ltinputgt
- ltsoapbody use"literal" /gt
describes the style, - lt/inputgt
encoding, and - ltoutputgt
transport medium - ltsoapbody use"literal" /gt
of the SOAP - lt/outputgt
messages - lt/operationgt
- lt/bindinggt
15UDDI
- 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
16Web Service Invocation
17System Description
- Web-based shopping portal catering to books
- Web Application implemented in Microsoft .NET
- Generic functionalities are third party business
components implemented as EJBs.
18Third Party Business Components
- Tax Calculation Service
-
- Shipping Cost Calculation Service
- Credit Card Validation Service
- - Based on Luhn Algorithm
19Technologies 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
20System Overview
21System Architecture
VENDOR
THIRD PARTY BUSINESS COMPONENT
EJB
SOAP SKELETON
DATABASE
EJB
22Class Diagrams
23Class Diagrams (contd..)
- Vendor Class Diagram
Vendor Module -
5 classes -
24Use Case Buyer
25Use Case Vendor
26Sequence Diagram Tax Calculation
27Sequence Diagram Shipping Cost Calculation
28Sequence Diagram Credit Card Validation
29Demo
30Performance Evaluation Web Application
- No of Iterations (Vs) Response Time (20 users)
- WEB SERVER PRESARIO x1000, 1.8 GHz
Centrino, 512 MB RAM
31Performance Evaluation Web Application
- No of Iterations (Vs) Response Time (40 users)
- WEB SERVER PRESARIO x1000, 1.8 GHz
Centrino, 512 MB RAM
32Performance Evaluation Web Application
- No of Threads (Vs) Response Time
- WEB SERVER PRESARIO x1000, 1.8 GHz
Centrino, 512 MB RAM
33Performance Evaluation Web Service
- No of Iterations (Vs) Response Time (20 users)
- WEB SERVER PRESARIO x1000, 1.8 GHz
Centrino, 512 MB RAM
34Performance Evaluation Web Service
- No of Iterations (Vs) Response Time (40 users)
- WEB SERVER PRESARIO x1000, 1.8 GHz
Centrino, 512 MB RAM
35Results
- 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
36Analysis
- 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
37Implementation 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
APIs.
38Lessons Learned
- Cross-platform component integration through web
services - Java and .NET APIs available for exposing
business components as web services. - Role of JBoss and Axis in deploying stateless
EJBs as web services
39Conclusion
- 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
40Future 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 APIs 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 CMPs under the purview of web
services
41References
- 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?modulebb
- http//nagoya.apache.org/wiki/apachewiki.cgi?AxisP
rojectPages/DotNetInterop - http//www.vbip.com/books/1861005091/chapter_5091_
01.asp
42Questions ?