The document compares .NET and Java application platforms as of 2006. It discusses how both platforms have evolved over the past decade to include technologies like web services, workflows, and rules engines. While .NET focused on WCF, WF, and LINQ, Java emphasized Java EE, EJB, and SCA. The author predicts that future platforms will blend Java EE, SCA, and open-source technologies to define logic and services, access data, and build distributed applications.
1. DEV212 Comparing .NET and Java: The View from 2006 David Chappell Chappell & Associates www.davidchappell.com
2. Application Platforms Today Data Access Containing and Connecting Logic Defining Logic Logic to Logic Logic to Web Browser Accessing Data Web Services Binary Communication Distributed Transactions, etc. Queued Messaging Using Logic Web Browser Standalone Client Objects Remote Logic
3. .NET Framework 2.0 Defining Logic Containing and Connecting Logic Accessing Data Using Logic ADO.NET ASP.NET ASMX/ WSE .NET Remoting Enterprise Services System. Messaging C#/Visual Basic/etc. Browser Windows Forms Remote Logic
4. J2EE 1.4 Defining Logic Containing and Connecting Logic Accessing Data JDBC Using Logic Servlets/Java Server Pages (JSP) JAX-RPC Remote Method Invocation (RMI) Enterprise JavaBeans (EJB) Java Message Service (JMS) Java Browser Remote Logic Standalone Client
5.
6.
7. Application Platforms in 2008 Defining Logic Containing and Connecting Logic Logic to Web Browser Accessing Data Data Access Using Logic Web Browser Standalone Client Remote Logic Logic to Logic Objects Workflows If … Then … Rules If … Then … If … Then …
8. .NET Framework 3.0 Defining Logic Containing and Connecting Logic ASP.NET Accessing Data Using Logic Browser/AJAX/ XBAPs Windows Presentation Foundation (WPF) Remote Logic ADO.NET C#, VB, etc. Workflows Windows Workflow Foundation (WF) Rules WF Rules Engine Windows Communication Foundation (WCF)
9. Java EE 5 Defining Logic Containing and Connecting Logic Accessing Data Using Logic Remote Logic Servlets/Java Server Pages (JSP) Browser/AJAX Standalone Client Java JDBC Java Persistence API (JPA) JAX-WS Remote Method Invocation (RMI) Enterprise JavaBeans 3.0 Java Message Service (JMS) Workflows Rules
10. Open SOA Defining Logic Containing and Connecting Logic Accessing Data Using Logic Remote Logic Service Data Objects (SDO) Servlets/ Java Server Pages (JSP) Browser/AJAX Standalone Client Java, C++, etc. Workflows BPEL Service Component Architecture (SCA) Rules
11.
12. A Plausible Successor to J2EE 1.4 Defining Logic Containing and Connecting Logic Accessing Data Using Logic Remote Logic Servlets/ Java Server Pages (JSP) Browser/AJAX Swing/Eclipse Client Java Workflows Rules BPEL Various Service Component Architecture (SCA) Service Data Objects (SDO) Java Persistence API (JPA)
13. Defining Logic: A Closer Look Defining Logic Containing and Connecting Logic Accessing Data Using Logic Objects Workflows If … Then … Rules If … Then … If … Then …
14.
15. Defining Logic: Workflows Workflow Engine 1) Execute first step 2) Execute second step 3) Execute next step . . .
16.
17.
18.
19.
20.
21. BPEL Illustrating a Typical Implementation BPEL Execution Engine Workflow Graphical Process Design Tool Runtime Services
22. WF Illustrating Its Components Workflow Other Activities BPEL 1.1 Library Host Process Base Activity Library (BAL) Runtime Engine Runtime Services Visual Studio 2005 WF Workflow Designer
23.
24.
25.
26.
27.
28.
29. Containing Logic: A Closer Look Defining Logic Containing and Connecting Logic Logic to Logic Logic to Web Browser Accessing Data Using Logic
30.
31.
32.
33. Unifying Communication WCF Windows Communication Foundation API ASMX & WSE .NET Remoting Enterprise Services System. Messaging API Applications .NET Framework 2.0 MSMQ SOAP & WS-* Remoting binary protocol DCOM Protocol Others SOAP & WS-* WCF binary protocol MSMQ Protocol Applications .NET Framework 3.0
34. Unifying Communication SCA Service Component Architecture API JAX-RPC Java RMI JMS API EJB Applications J2EE 1.4 Applications Open SOA Others SOAP & WS-* RMI binary protocol Queued messaging protocols Protocol Queued messaging protocols SOAP & WS-* RMI binary protocols Protocol Various protocols
35.
36.
37.
38.
39.
40. Illustrating Assembly: A Composite SCA Composite Component Component Component Service X Y Z Wire Y Reference Z Property Client X
41.
42.
43. Accessing Data: A Closer Look Defining Logic Containing and Connecting Logic Accessing Data Data Access Using Logic
44. Data Access Technology The Last Ten Years Java EE Open SOA Microsoft Key 1996 ADO JDBC EJB 1.0 Entity Beans 1998 EJB 2.0 Entity beans 2001 Java Persistence API (JPA) 2006 JAXB Service Data Objects (SDO) ObjectSpaces (cancelled) 2003 Java Data Objects (JDO) System.XML ADO.NET 2002 Relational access O/R mapping XML mapping Relational access and XML mapping Supplants EJB Entity beans and JDO
45. Illustrating ADO.NET .NET Framework Data Provider .NET Framework Data Provider Application DBMS XML Document XML Document DataSet Serialized DataSet <XML … /> Tables
46. Illustrating SDO .NET Framework Data Provider XML Document XML Document Application DBMS Data Access Service Data Access Service XML Document Other Data Source Data Access Service Serialized DataObjects <XML … /> Data Graph DataObjects
47.
48. A Projection for 2008 A Mainstream .NET Framework Application WCF Service WF Workflow ASP.NET AJAX WCF Service LINQ ADO.NET
49. A Projection for 2008 A Mainstream Java EE/Open SOA Application Java SCA Component JSP/ AJAX Java SCA Component BPEL SCA Component SDO JPA