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 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 Integrating homogeneous components routine, relatively smooth Integrating cross-platform components The Real Challenge?
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
Advantages Reduces software development lifecycle Eliminates time spent in testing and debugging the application Decreases “Time-to-Market” aspect of the web application
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
Web Services Based Architecture Web Services are the middleware that integrate heterogeneous systems over internet/intranets
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
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
SOAP Message Structure
Sample SOAP Message ……………………………………………. <w:GetSecretIdentity xmlns:w=" XSLT-Man
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
Describes the custom or complex datatypes number and type of return values names of the input amd output SOAP messages WSDL Sample
<soap:operation soapAction= style="document" /> describes the style, encoding, and transport medium of the SOAP messages entry point to the web service WSDL Sample (contd.. )
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
Web Service Invocation
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.
Third – Party Business Components Tax Calculation Service Shipping Cost Calculation Service Credit Card Validation Service - Based on Luhn Algorithm
Technologies used ASP.NET, ADO.NET, C# ASP.NET WebMethod Framework J2EE (EJB) AXIS 1.1 Framework JBOSS IIS 5.0 Microsoft ACT Apache JMeter
System Overview
System Architecture VENDOR (.NET) SOAP PROXY THIRD PARTY BUSINESS COMPONENT SOAP SKELET ON EJB DATABASE
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 No of Iterations (Vs) Response Time (20 users) WEB SERVER: PRESARIO x1000, 1.8 GHz Centrino ®, 512 MB RAM
Performance Evaluation: Web Application No of Iterations (Vs) Response Time (40 users) WEB SERVER: PRESARIO x1000, 1.8 GHz Centrino ®, 512 MB RAM
Performance Evaluation: Web Application No of Threads (Vs) Response Time WEB SERVER: PRESARIO x1000, 1.8 GHz Centrino ®, 512 MB RAM
Performance Evaluation: Web Service No of Iterations (Vs) Response Time (20 users) WEB SERVER: PRESARIO x1000, 1.8 GHz Centrino ®, 512 MB RAM
Performance Evaluation: Web Service No of Iterations (Vs) Response Time (40 users) WEB SERVER: PRESARIO x1000, 1.8 GHz Centrino ®, 512 MB RAM
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%
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
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.
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
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
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
References
Questions ?