A CrossPlatform Component Based Ecommerce Framework in NET

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

Overview o o o 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

Problem Statement o o Integrating homogeneous components routine, relatively smooth Integrating cross-platform components The Real Challenge?

Solution Develop an architecture that o is based on open standards o is platform and language independent o emphasizes on a mode of communication understandable to both systems

Advantages o Reduces software development lifecycle o Eliminates time spent in testing and debugging the application o Decreases “Time-to-Market” aspect of the web application

Why Web Services ? o XML based lightweight middleware infrastructure o Based on open standards – SOAP, UDDI, WSDL o Systems that understand HTTP are capable of exposing and consuming web services

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

Web Services Buzzwords o SOAP (Simple Object Access Protocol) - protocol for transmitting and receiving XML messages over HTTP o WSDL (Web Services Description Language) - describes the interface of a Web Service in a standardized way o UDDI (Universal Description, Discovery and Integration) - provides a worldwide registry of web services for advertisement, discovery, and integration purposes

SOAP o Simple Object Access Protocol o Provides a standard packaging structure for transporting XML documents over HTTP, FTP and SMTP. o Defines encoding and binding standards for encoding non-XML RPC invocations in XML for transport o Provides a standard transport mechanism that allows heterogeneous clients to interoperate

SOAP Message Structure

Sample SOAP Message <soap: Envelope> <soap: Header> ………………………. </soap: Header> <soap: Body> <w: Get. Secret. Identity xmlns: w="http: //www. wrox. com/heroes/"> <w: codename>XSLT-Man</w: codename> </w: Get. Secret. Identity> </soap: Body> </soap: Envelope>

WSDL o Web Services Description Language o standardizes how a web service represents the input and output parameters of an invocation, the function’s structure, the nature of the invocation o allows disparate clients to understand how to interact with a web service

WSDL Sample <? xml version="1. 0" encoding="utf-8" ? > <definitions> <types> <s: schema element. Form. Default="qualified" target. Namespace="http: //tempuri. org/"> <s: element name="Validate. Card. Number"> <s: complex. Type> <s: sequence> <s: element min. Occurs="0" max. Occurs="1" name="card. Number" type="s: string" /> </s: sequence> </s: complex. Type> </s: element> <s: element name="Validate. Card. Number. Response"> <s: complex. Type> <s: sequence> <s: element min. Occurs="1" max. Occurs="1" name="Validate. Card. Number. Result" type="s: boolean" /> </s: sequence> </s: complex. Type> </s: element> </s: schema> </types> <message name="Validate. Card. Number. Soap. In"> <part name="parameters" element="s 0: Validate. Card. Number" /> </message> <message name="Validate. Card. Number. Soap. Out"> <part name="parameters" element="s 0: Validate. Card. Number. Response" /> </message> Describes the custom or complex datatypes number and type of return values names of the input amd output SOAP messages

WSDL Sample (contd. . ) <port. Type name="Service 1 Soap"> <operation name="Validate. Card. Number"> <input message="s 0: Validate. Card. Number. Soap. In" /> <output message="s 0: Validate. Card. Number. Soap. Out" /> </operation> </port. Type> <binding name="Service 1 Soap" type="s 0: Service 1 Soap"> <soap: binding transport="http: //schemas. xmlsoap. org/soap/http" style="document" /> <operation name="Validate. Card. Number"> <soap: operation soap. Action=http: //tempuri. org/Validate. Card. Number style="document" /> <input> <soap: body use="literal" /> </input> <output> <soap: body use="literal" /> </output> </operation> </binding> <service name="Service 1"> <port name="Service 1 Soap" binding="s 0: Service 1 Soap"> <soap: address location="http: //localhost: 7070/Books. Online/Service 1. asmx" /> </port> </service> </definitions> describes the style, encoding, and transport medium of the SOAP messages entry point to the web service

UDDI o Universal Discovery, Description and Integration o standardized method for publishing and discovering information about web services o open framework for describing services, discovering businesses, and integrating business services o focuses on the process of discovery

Web Service Invocation

System Description o Web-based shopping portal catering to books o Web Application implemented in Microsoft. NET o Generic functionalities are third party business components implemented as EJB’s.

Third – Party Business Components o Tax Calculation Service o Shipping Cost Calculation Service o Credit Card Validation Service - Based on Luhn Algorithm

Technologies used o o o o ASP. NET, ADO. NET, C# ASP. NET Web. Method Framework J 2 EE 1. 3. 1 (EJB) AXIS 1. 1 Framework JBOSS 3. 2. 3 IIS 5. 0 Microsoft ACT Apache JMeter

System Overview

System Architecture VENDOR THIRD PARTY BUSINESS COMPONENT EJB VENDOR (. NET) SOAP PROXY SOAP SKELET ON DATABASE EJB

Class Diagrams Buyer Class Diagram

Class Diagrams (contd. . ) Vendor Class Diagram Vendor Module 5 classes

Use Case: Buyer

Use Case: Vendor

Sequence Diagram: Tax Calculation

Sequence Diagram: Shipping Cost Calculation

Sequence Diagram: Credit Card Validation

Demo

Performance Evaluation: Web Application o No of Iterations (Vs) Response Time (20 users) WEB SERVER: PRESARIO x 1000, 1. 8 GHz Centrino®, 512 MB RAM

Performance Evaluation: Web Application o No of Iterations (Vs) Response Time (40 users) WEB SERVER: PRESARIO x 1000, 1. 8 GHz Centrino®, 512 MB RAM

Performance Evaluation: Web Application o No of Threads (Vs) Response Time WEB SERVER: PRESARIO x 1000, 1. 8 GHz Centrino®, 512 MB RAM

Performance Evaluation: Web Service o No of Iterations (Vs) Response Time (20 users) WEB SERVER: PRESARIO x 1000, 1. 8 GHz Centrino®, 512 MB RAM

Performance Evaluation: Web Service o No of Iterations (Vs) Response Time (40 users) WEB SERVER: PRESARIO x 1000, 1. 8 GHz Centrino®, 512 MB RAM

Results o o o 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%

Analysis o o 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

Implementation Issues o o o 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 J 2 EE technologies. JBoss. NET or AXIS ? Working simultaneously with both. NET and J 2 EE API’s.

Lessons Learned o Cross-platform component integration through web services o Java and. NET API’s available for exposing business components as web services. o Role of JBoss and Axis in deploying stateless EJB’s as web services

Conclusion o Microsoft. NET and Axis need optimizations to identify and expose cross-platform components as web services o Cross-platform integration reduces the communication speed of the web application. o Cross-platform integration not suitable for web applications that require speedy communication with business components

Future Work o o 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 J 2 EE 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

References o 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? Axis. Project. Pages/Dot. Net. Interop o http: //www. vbip. com/books/1861005091/chapter_5091_01. asp o o o o o

Questions ?
- Slides: 42