Java Vs - Association for Computing Machineryprincetonacm.acm.org/tcfpro/Java Vs .NET.pdf · ·...
-
Upload
hoangthuan -
Category
Documents
-
view
222 -
download
1
Transcript of Java Vs - Association for Computing Machineryprincetonacm.acm.org/tcfpro/Java Vs .NET.pdf · ·...
![Page 2: Java Vs - Association for Computing Machineryprincetonacm.acm.org/tcfpro/Java Vs .NET.pdf · · 2009-04-27Java Vs .NET Raj Laad raj.laad@pristineinfotech.com. About Speaker Raj](https://reader031.fdocuments.us/reader031/viewer/2022020412/5ad30b0b7f8b9abd6c8d62bf/html5/thumbnails/2.jpg)
About Speaker
Raj Laad ([email protected])
CTO of Pristine Infotech
Business solutions to mobile workforce - business intelligence at your fingertips
Owner of GURU Technology
Consulting to medium-large organizations across industries
Technologies
Products, Web Applications, SOA/Web Services
Enterprise Systems
Business Analysis , Data Warehousing
C#, ASP.NET, ADO.NET, C++, COM, XML
Java, J2EE/EJB, JSP, JMS
Mobile Computing
2
![Page 3: Java Vs - Association for Computing Machineryprincetonacm.acm.org/tcfpro/Java Vs .NET.pdf · · 2009-04-27Java Vs .NET Raj Laad raj.laad@pristineinfotech.com. About Speaker Raj](https://reader031.fdocuments.us/reader031/viewer/2022020412/5ad30b0b7f8b9abd6c8d62bf/html5/thumbnails/3.jpg)
Agenda
History
Architecture and Technologies
Security and Versioning
Development and Deployment Environments
Interoperability
Conclusion
Code Samples
Q & A
3
![Page 4: Java Vs - Association for Computing Machineryprincetonacm.acm.org/tcfpro/Java Vs .NET.pdf · · 2009-04-27Java Vs .NET Raj Laad raj.laad@pristineinfotech.com. About Speaker Raj](https://reader031.fdocuments.us/reader031/viewer/2022020412/5ad30b0b7f8b9abd6c8d62bf/html5/thumbnails/4.jpg)
Java History
Sun Microsystems began development early 1990s
Intended for smart devices - PDAs, Set Tops
Response to C++ Issues/Limitations
Lack of garbage collection
Too big for embedded software
No portable services for security, distributed programming, threading, etc.
Wanted portable platform – easy to port to all types of devices
James Gosling came up with Java
Java and Java platform first released in 1995
Popularity grew with the rise of internet
4
![Page 5: Java Vs - Association for Computing Machineryprincetonacm.acm.org/tcfpro/Java Vs .NET.pdf · · 2009-04-27Java Vs .NET Raj Laad raj.laad@pristineinfotech.com. About Speaker Raj](https://reader031.fdocuments.us/reader031/viewer/2022020412/5ad30b0b7f8b9abd6c8d62bf/html5/thumbnails/5.jpg)
.NET History
Developed by Microsoft in late 1990s
Needed unified solution to common programming problems
Memory management
Security
User interface
Data access
Exception handling
Common type system (VB, C#, C++)
Solve DLL hell
Move away from COM problems
And answer to Java
5
![Page 6: Java Vs - Association for Computing Machineryprincetonacm.acm.org/tcfpro/Java Vs .NET.pdf · · 2009-04-27Java Vs .NET Raj Laad raj.laad@pristineinfotech.com. About Speaker Raj](https://reader031.fdocuments.us/reader031/viewer/2022020412/5ad30b0b7f8b9abd6c8d62bf/html5/thumbnails/6.jpg)
Language Feature Differences
Indexer
Operator overloading
Namespaces
Class & files different, partial classes
6
![Page 7: Java Vs - Association for Computing Machineryprincetonacm.acm.org/tcfpro/Java Vs .NET.pdf · · 2009-04-27Java Vs .NET Raj Laad raj.laad@pristineinfotech.com. About Speaker Raj](https://reader031.fdocuments.us/reader031/viewer/2022020412/5ad30b0b7f8b9abd6c8d62bf/html5/thumbnails/7.jpg)
Standalone Applications
7
![Page 8: Java Vs - Association for Computing Machineryprincetonacm.acm.org/tcfpro/Java Vs .NET.pdf · · 2009-04-27Java Vs .NET Raj Laad raj.laad@pristineinfotech.com. About Speaker Raj](https://reader031.fdocuments.us/reader031/viewer/2022020412/5ad30b0b7f8b9abd6c8d62bf/html5/thumbnails/8.jpg)
Standalone Applications
8
![Page 9: Java Vs - Association for Computing Machineryprincetonacm.acm.org/tcfpro/Java Vs .NET.pdf · · 2009-04-27Java Vs .NET Raj Laad raj.laad@pristineinfotech.com. About Speaker Raj](https://reader031.fdocuments.us/reader031/viewer/2022020412/5ad30b0b7f8b9abd6c8d62bf/html5/thumbnails/9.jpg)
Standalone Applications
9
![Page 10: Java Vs - Association for Computing Machineryprincetonacm.acm.org/tcfpro/Java Vs .NET.pdf · · 2009-04-27Java Vs .NET Raj Laad raj.laad@pristineinfotech.com. About Speaker Raj](https://reader031.fdocuments.us/reader031/viewer/2022020412/5ad30b0b7f8b9abd6c8d62bf/html5/thumbnails/10.jpg)
Client Server Applications
Trend towards web browser web server
Better than CGI scripts
Performance
Simplicity
Reusability
Functionality availability
Open standards within platform
Security
10
![Page 11: Java Vs - Association for Computing Machineryprincetonacm.acm.org/tcfpro/Java Vs .NET.pdf · · 2009-04-27Java Vs .NET Raj Laad raj.laad@pristineinfotech.com. About Speaker Raj](https://reader031.fdocuments.us/reader031/viewer/2022020412/5ad30b0b7f8b9abd6c8d62bf/html5/thumbnails/11.jpg)
Client Server Applications
11
![Page 12: Java Vs - Association for Computing Machineryprincetonacm.acm.org/tcfpro/Java Vs .NET.pdf · · 2009-04-27Java Vs .NET Raj Laad raj.laad@pristineinfotech.com. About Speaker Raj](https://reader031.fdocuments.us/reader031/viewer/2022020412/5ad30b0b7f8b9abd6c8d62bf/html5/thumbnails/12.jpg)
Client Server Applications
12
![Page 13: Java Vs - Association for Computing Machineryprincetonacm.acm.org/tcfpro/Java Vs .NET.pdf · · 2009-04-27Java Vs .NET Raj Laad raj.laad@pristineinfotech.com. About Speaker Raj](https://reader031.fdocuments.us/reader031/viewer/2022020412/5ad30b0b7f8b9abd6c8d62bf/html5/thumbnails/13.jpg)
Client Server Applications
HTML controls
Data entered lost
Hidden variables to store state
Server controls
Data maintained
.NET - ASPX
Java - JSF, Tag libraries
Java web servers
Apache, Tomcat
Weblogic, Websphere
SunOne, JBoss
.NET web server
IIS
13
![Page 14: Java Vs - Association for Computing Machineryprincetonacm.acm.org/tcfpro/Java Vs .NET.pdf · · 2009-04-27Java Vs .NET Raj Laad raj.laad@pristineinfotech.com. About Speaker Raj](https://reader031.fdocuments.us/reader031/viewer/2022020412/5ad30b0b7f8b9abd6c8d62bf/html5/thumbnails/14.jpg)
Distributed Computing
Applications distributed
Developed by departments
Developed by subsidiaries
Developed by partners
Remote object registry
Remote object interface
Remote client
Object serialization
Pass objects
Marshaling / Un-marshaling
Distributed garbage collection
14
![Page 15: Java Vs - Association for Computing Machineryprincetonacm.acm.org/tcfpro/Java Vs .NET.pdf · · 2009-04-27Java Vs .NET Raj Laad raj.laad@pristineinfotech.com. About Speaker Raj](https://reader031.fdocuments.us/reader031/viewer/2022020412/5ad30b0b7f8b9abd6c8d62bf/html5/thumbnails/15.jpg)
Distributed Computing
15
![Page 16: Java Vs - Association for Computing Machineryprincetonacm.acm.org/tcfpro/Java Vs .NET.pdf · · 2009-04-27Java Vs .NET Raj Laad raj.laad@pristineinfotech.com. About Speaker Raj](https://reader031.fdocuments.us/reader031/viewer/2022020412/5ad30b0b7f8b9abd6c8d62bf/html5/thumbnails/16.jpg)
Distributed Computing
Enterprise JavaBeans (EJB)
Server side components
Based on RMI
EJB Model
EJB server, EJB containers
Home interface & home object – factory pattern
Remote interface and EJBObject/Enterprise JavaBean
EJB client
16
![Page 17: Java Vs - Association for Computing Machineryprincetonacm.acm.org/tcfpro/Java Vs .NET.pdf · · 2009-04-27Java Vs .NET Raj Laad raj.laad@pristineinfotech.com. About Speaker Raj](https://reader031.fdocuments.us/reader031/viewer/2022020412/5ad30b0b7f8b9abd6c8d62bf/html5/thumbnails/17.jpg)
EJB
17
![Page 18: Java Vs - Association for Computing Machineryprincetonacm.acm.org/tcfpro/Java Vs .NET.pdf · · 2009-04-27Java Vs .NET Raj Laad raj.laad@pristineinfotech.com. About Speaker Raj](https://reader031.fdocuments.us/reader031/viewer/2022020412/5ad30b0b7f8b9abd6c8d62bf/html5/thumbnails/18.jpg)
EJB
Enable distributed development - roles
EJB server provider
EJB container provider
EJB developer
EJB deployer
Application developer
Performance issues if objects fine grained
18
![Page 19: Java Vs - Association for Computing Machineryprincetonacm.acm.org/tcfpro/Java Vs .NET.pdf · · 2009-04-27Java Vs .NET Raj Laad raj.laad@pristineinfotech.com. About Speaker Raj](https://reader031.fdocuments.us/reader031/viewer/2022020412/5ad30b0b7f8b9abd6c8d62bf/html5/thumbnails/19.jpg)
Service Oriented Architecture (SOA)
Different paradigm for distributed computing
Technologies
SOAP - Simple Object Access Protocol
WSDL – Web Services Description Language
UDDI – Universal Description, Discovery and Integration
XML – data representation
HTTP/SMTP - transport
Platform independent
Web Services
19
![Page 20: Java Vs - Association for Computing Machineryprincetonacm.acm.org/tcfpro/Java Vs .NET.pdf · · 2009-04-27Java Vs .NET Raj Laad raj.laad@pristineinfotech.com. About Speaker Raj](https://reader031.fdocuments.us/reader031/viewer/2022020412/5ad30b0b7f8b9abd6c8d62bf/html5/thumbnails/20.jpg)
SOA
20
![Page 21: Java Vs - Association for Computing Machineryprincetonacm.acm.org/tcfpro/Java Vs .NET.pdf · · 2009-04-27Java Vs .NET Raj Laad raj.laad@pristineinfotech.com. About Speaker Raj](https://reader031.fdocuments.us/reader031/viewer/2022020412/5ad30b0b7f8b9abd6c8d62bf/html5/thumbnails/21.jpg)
AJAX - Asynchronous JavaScript and XML
21
Hidden frame / iframe
XMLHTTPRequest
![Page 22: Java Vs - Association for Computing Machineryprincetonacm.acm.org/tcfpro/Java Vs .NET.pdf · · 2009-04-27Java Vs .NET Raj Laad raj.laad@pristineinfotech.com. About Speaker Raj](https://reader031.fdocuments.us/reader031/viewer/2022020412/5ad30b0b7f8b9abd6c8d62bf/html5/thumbnails/22.jpg)
AJAX
Increase in bandwidth
Browser capabilities increase and become more compatible with one
another
Rediscovery of XMLHTTPRequest object
Allows asynchronous messages between browser and web server
No need to refresh entire web page for dynamic data
22
![Page 23: Java Vs - Association for Computing Machineryprincetonacm.acm.org/tcfpro/Java Vs .NET.pdf · · 2009-04-27Java Vs .NET Raj Laad raj.laad@pristineinfotech.com. About Speaker Raj](https://reader031.fdocuments.us/reader031/viewer/2022020412/5ad30b0b7f8b9abd6c8d62bf/html5/thumbnails/23.jpg)
AJAX
23
![Page 24: Java Vs - Association for Computing Machineryprincetonacm.acm.org/tcfpro/Java Vs .NET.pdf · · 2009-04-27Java Vs .NET Raj Laad raj.laad@pristineinfotech.com. About Speaker Raj](https://reader031.fdocuments.us/reader031/viewer/2022020412/5ad30b0b7f8b9abd6c8d62bf/html5/thumbnails/24.jpg)
AJAX
Technologies
JavaScript
CSS
Web page DOM/JSON
Asynchronous communication with web server
XML
Applications
Rich user experience, real-time form data validation
Auto-completion, load on demand
Sophisticated user interface and effects, partial submit
Web 2.0 mashups
Page as an application
Google Maps, Gmail, Yahoo! News
24
![Page 25: Java Vs - Association for Computing Machineryprincetonacm.acm.org/tcfpro/Java Vs .NET.pdf · · 2009-04-27Java Vs .NET Raj Laad raj.laad@pristineinfotech.com. About Speaker Raj](https://reader031.fdocuments.us/reader031/viewer/2022020412/5ad30b0b7f8b9abd6c8d62bf/html5/thumbnails/25.jpg)
Mobile Computing
Cell phones ubiquitous to age old phone
Access information from anywhere
Technologies
Windows Mobile, J2ME
Android, iPhone (Mac OS X), Symbian, Palm
Connectivity: cellular, WiFi, Bluetooth
GPS, A-GPS – location based services
Camera, video
Voice, music
SMS, MMS
25
![Page 26: Java Vs - Association for Computing Machineryprincetonacm.acm.org/tcfpro/Java Vs .NET.pdf · · 2009-04-27Java Vs .NET Raj Laad raj.laad@pristineinfotech.com. About Speaker Raj](https://reader031.fdocuments.us/reader031/viewer/2022020412/5ad30b0b7f8b9abd6c8d62bf/html5/thumbnails/26.jpg)
Additional Technologies
Java
JMS, JNDI, Jini/JavaSpaces
.NET
WCF, WPF, WWF
LINQ, MSMQ
26
![Page 27: Java Vs - Association for Computing Machineryprincetonacm.acm.org/tcfpro/Java Vs .NET.pdf · · 2009-04-27Java Vs .NET Raj Laad raj.laad@pristineinfotech.com. About Speaker Raj](https://reader031.fdocuments.us/reader031/viewer/2022020412/5ad30b0b7f8b9abd6c8d62bf/html5/thumbnails/27.jpg)
Security
Very critical for consumer or enterprise applications
Browser security
Sandbox model
Can access from codebase
Threat modeling
Authentication
Authorization
Data input validation
Data protection
Configuration management
Auditing
Exception management
Source code protection
27
![Page 28: Java Vs - Association for Computing Machineryprincetonacm.acm.org/tcfpro/Java Vs .NET.pdf · · 2009-04-27Java Vs .NET Raj Laad raj.laad@pristineinfotech.com. About Speaker Raj](https://reader031.fdocuments.us/reader031/viewer/2022020412/5ad30b0b7f8b9abd6c8d62bf/html5/thumbnails/28.jpg)
Security
Cryptography
Sender authentication, non-repudiation, data integrity, confidentiality
Hashing, symmetric keys, asymmetric keys, signing
RSA, DSA, AES, Triple DES, SHA, PKCS#5, RC2, and RC4
Permissions
Role based security
Authorization - privileges
User identity and roles
Secure Communications
SSL, TSL
HTTPS over SSL/TSL
Platform security
Strong data typing, automatic memory management
Byte code verification, secure class loading
28
![Page 29: Java Vs - Association for Computing Machineryprincetonacm.acm.org/tcfpro/Java Vs .NET.pdf · · 2009-04-27Java Vs .NET Raj Laad raj.laad@pristineinfotech.com. About Speaker Raj](https://reader031.fdocuments.us/reader031/viewer/2022020412/5ad30b0b7f8b9abd6c8d62bf/html5/thumbnails/29.jpg)
Security
.NET Framework
Code access security
Permission sets – FullTrust, LocalIntranet, Internet, Nothing
Code groups: app directory, GAC, site, publisher, URL, zone, …
Security policy – enterprise, machine, user, AppDomain
Web configuration file example
Java
Policy file example
29
![Page 30: Java Vs - Association for Computing Machineryprincetonacm.acm.org/tcfpro/Java Vs .NET.pdf · · 2009-04-27Java Vs .NET Raj Laad raj.laad@pristineinfotech.com. About Speaker Raj](https://reader031.fdocuments.us/reader031/viewer/2022020412/5ad30b0b7f8b9abd6c8d62bf/html5/thumbnails/30.jpg)
Versioning - Java
Stream Unique ID stored in serialized objects
Package versioning – in manifest file
VM: java-vm.specification.version, java-vm.specification.vendor, …
Runtime: java.version, java.vendor, java.specification.version, …
Package: Package-Title, Package-Version, …
Component versioning not solved
Component dependency
JAR versioning
Application using components that use different versions of a component
Components shared across different JRE versions
JSR 277 on hold
30
![Page 31: Java Vs - Association for Computing Machineryprincetonacm.acm.org/tcfpro/Java Vs .NET.pdf · · 2009-04-27Java Vs .NET Raj Laad raj.laad@pristineinfotech.com. About Speaker Raj](https://reader031.fdocuments.us/reader031/viewer/2022020412/5ad30b0b7f8b9abd6c8d62bf/html5/thumbnails/31.jpg)
Versioning - .NET
Assembly level versioning
Assembly version
Dependent assembly versions
Proper version assembly is bound to calling assembly
31
![Page 32: Java Vs - Association for Computing Machineryprincetonacm.acm.org/tcfpro/Java Vs .NET.pdf · · 2009-04-27Java Vs .NET Raj Laad raj.laad@pristineinfotech.com. About Speaker Raj](https://reader031.fdocuments.us/reader031/viewer/2022020412/5ad30b0b7f8b9abd6c8d62bf/html5/thumbnails/32.jpg)
Development and Deployment Environments
Development Environment
Visual Studio
Eclipse, Java Studio, IntelliJ, JBuilder, JDeveloper
Deployment Environment
IIS
Apache, Tomcat, Weblogic, Websphere, SunOne, JBoss
32
![Page 33: Java Vs - Association for Computing Machineryprincetonacm.acm.org/tcfpro/Java Vs .NET.pdf · · 2009-04-27Java Vs .NET Raj Laad raj.laad@pristineinfotech.com. About Speaker Raj](https://reader031.fdocuments.us/reader031/viewer/2022020412/5ad30b0b7f8b9abd6c8d62bf/html5/thumbnails/33.jpg)
Interfacing Java and .NET
Interoperability issues
Byte order, data format, hardware compatibility
Complex integration issues
Complexity of systems
TCP/IP connection is not enough
Approaches
Shared resource
File, database, queue
In-process Interop
JNI, COM Interop
Cross compilation/tools: IKVM, Grasshopper, JuggerNET
Out-of-process Interop
Sockets, RPC
XML/HTTP, web service
33
![Page 34: Java Vs - Association for Computing Machineryprincetonacm.acm.org/tcfpro/Java Vs .NET.pdf · · 2009-04-27Java Vs .NET Raj Laad raj.laad@pristineinfotech.com. About Speaker Raj](https://reader031.fdocuments.us/reader031/viewer/2022020412/5ad30b0b7f8b9abd6c8d62bf/html5/thumbnails/34.jpg)
Technology Comparison
34
Java .NET
JDBC ADO.NET
JSP/Servlet Aspx
JMS MSMQ
RMI .NET Remoting/WCF
EJB COM+
JAX-WS/Axis Asmx/WCF
J2ME Windows Mobile
![Page 35: Java Vs - Association for Computing Machineryprincetonacm.acm.org/tcfpro/Java Vs .NET.pdf · · 2009-04-27Java Vs .NET Raj Laad raj.laad@pristineinfotech.com. About Speaker Raj](https://reader031.fdocuments.us/reader031/viewer/2022020412/5ad30b0b7f8b9abd6c8d62bf/html5/thumbnails/35.jpg)
Closing Thoughts
.NET offers a unified vision of software development
Java offers a wide array of third-party choices for dev. environment
.NET is clear winner as a desktop application dev. environment
Java has much higher penetration into back-end systems
Java stronger in mobile computing
Java and .NET compete in web application server space
Future
Parallel computing
Event-driven web applications, server push
Grid computing
Robotics
35
![Page 36: Java Vs - Association for Computing Machineryprincetonacm.acm.org/tcfpro/Java Vs .NET.pdf · · 2009-04-27Java Vs .NET Raj Laad raj.laad@pristineinfotech.com. About Speaker Raj](https://reader031.fdocuments.us/reader031/viewer/2022020412/5ad30b0b7f8b9abd6c8d62bf/html5/thumbnails/36.jpg)
AJAX
Code Sample
36
![Page 37: Java Vs - Association for Computing Machineryprincetonacm.acm.org/tcfpro/Java Vs .NET.pdf · · 2009-04-27Java Vs .NET Raj Laad raj.laad@pristineinfotech.com. About Speaker Raj](https://reader031.fdocuments.us/reader031/viewer/2022020412/5ad30b0b7f8b9abd6c8d62bf/html5/thumbnails/37.jpg)
Web Service
Code Sample
37
![Page 38: Java Vs - Association for Computing Machineryprincetonacm.acm.org/tcfpro/Java Vs .NET.pdf · · 2009-04-27Java Vs .NET Raj Laad raj.laad@pristineinfotech.com. About Speaker Raj](https://reader031.fdocuments.us/reader031/viewer/2022020412/5ad30b0b7f8b9abd6c8d62bf/html5/thumbnails/38.jpg)
RMI
Code Sample
38
![Page 39: Java Vs - Association for Computing Machineryprincetonacm.acm.org/tcfpro/Java Vs .NET.pdf · · 2009-04-27Java Vs .NET Raj Laad raj.laad@pristineinfotech.com. About Speaker Raj](https://reader031.fdocuments.us/reader031/viewer/2022020412/5ad30b0b7f8b9abd6c8d62bf/html5/thumbnails/39.jpg)
Q & A
39