Positioning J2EE and .NET Including JBoss and Mono. Pierre Fricke, EVP, Web Application and PLM Infrastructure; email@example.com. DHBA Web Application and PLM Infrastructure Services. Application Platform – J2EE and .NET Integration Platform – EAI, Web Services, PLM
Positioning J2EE and .NET Including JBoss and Mono Pierre Fricke, EVP, Web Application and PLM Infrastructure; firstname.lastname@example.org
DHBA Web Application and PLM Infrastructure Services • Application Platform – J2EE and .NET • Integration Platform – EAI, Web Services, PLM • EAI vs. App Server Integration Platforms Study • Web Services in PLM Study • J2EE and .NET Platform Positioning • IT and ISV Decision Making Services • DHBA also has a major focus on Linux and OSS…
Issue: Choosing an Application Platform • Operating systems are no longer the “application platform” for modern applications • Two component models: The Java platform and Microsoft .NET • Most large companies will support both – decision becomes a project, process or functional area focus • Smaller companies will be driven by solution providers • Existing infrastructure and skills should be the biggest drivers of the decision with an eye to business benefits – speed, integration and agility
The Java Platform Client-Side Presentation Server-Side Presentation Server-Side Business Logic Enterprise Information System Web Container EJB Container JDBC Apache; Others Browser Pure HTML JSP EJB Java Applet JSP EJB Entity, Message, Session Desktop J2SE Application Java Servlet EJB Other Device J2EE Platform J2EE Platform J2ME Client
The Java Platform Tools BluePrints Servlets JSPs EJBs Transactions JavaBeans Connectors Container Messaging Mail Applets Java 2 SDK, Standard Edition CORBA Security Database Directory XML
The Microsoft .NET Platform Client-Side Presentation Server-Side Presentation Server-Side Business Logic Enterprise Information System Browser ADO .NET IIS Managed Objects Pure HTML ASP.NET .NET Experience Managed Objects ASP.NET Desktop .NET Experience Managed Objects ASP.NET Other Device CLR CLR .NET Experience
.NET Framework MC++ VB JScript Other C# System.Web (ASP.NET) System.WinForms UI Session State Caching Component Model Design HTML Controls Security Web Controls System.Drawing Configuration Simple Web Services Printing Drawing 2D Protocols Imaging Text Discovery Description System.Data (ADO .NET) System.XML ADO Serialization SQL XSLT Other XPath Design System UI Collections IO Security Interop Services Configuration Net Configuration Remoting Diagnostics Reflection Text Serialization Globalization Resources Threading Common Language Runtime JIT Verifier GC App Domain Loader MSIL Globalization Type System Class Loader Windows Active Directory COM+ Hardware Drivers IIS+ MSMQ File System Networking
J2EE and Microsoft .NET Positioning – “Centers of Gravity” Market Positions of Strength - High Value & Function J2EE J2EE .NET .NET .NET .NET High Volume/ Low Price J2EE Small/Medium Biz Ind. Depts. In Large Net Generation - .com clicks and bricks Enterprises
Four Critical Tradeoffs • Platform choice • Many vs. Windows • Language choice • Java vs. Many • ebXML • E-business collaboration standards vs. BizTalk • Plugability and choice • Best-of-breed vs. Integrated stack
Platform Tradeoffs • J2EE – Windows, Linux, UNIXes, OS/400, z/OS, etc… • Deploy new applications on existing infrastructure • Maximize use of existing hardware and OS admin skill mix • Application QoS differentiation with UNIXes and z/OS • .NET – Windows • Deploy new applications on newer Intel infrastructure with Windows 2000 and .NET Server • Focus skills towards Windows platform • Leverage existing infrastructure through web services • If new applications to be deployed on non-Windows – use J2EE
Language Tradeoffs • J2EE – Java • Focus on new OO and component paradigm – leave bad habits behind • Java skills and/or training required • Application or component should be primarily Java – JNI and Corba bridges not optimal for performance nor simplicity • .NET – C#, Visual Basic, C++, COBOL, etc… • Leverage existing programming skills – some retraining is required for .NET Managed Components • Older code can be ported • Non-OO programmers need OO/component programming training and discipline for max benefit • If Java skills are scarce or not readily available – use .NET
Process Definition Process Definition Process Evolution Electronic Business Collaboration Process Management Partner Sign-Up Process Execution Electronic Plug-In ebXML – Standardized e-Business • Interoperability in J2EE 1.4 - JAXM
Plugability and Choice • J2EE offers several competing application frameworks – BEA WL Platform; IBM WebSphere; JBoss; Oracle 9i; Sun ONE; others… • Some J2EE-based offerings/extensions run on multiple platforms – e.g., there are other portals available on WebSphere beyond just IBM’s; Novell’s eXtend; BEA WL Server is part of Sun ONE via partnership; etc… • Microsoft offers a highly integrated model – with an ongoing strategy of including more in the base OS. • Greater seamless integration between offerings • Less choice
Multi-platform/vendor Java, CORBA bridges SOAP-based + ebXML Multiple IDEs Varied BPM- WSFL,BTP More complex Richer functionality CMP, BMP Entity and Msg Beans Transaction and availability Choice Pluggable architecture Multiple application frameworks: Sun ONE, IBM e-Biz, Oracle 9i, BEA WL Platform OSS – JBoss Interoperate through web services, JCA, JMS, COM bridges, CORBA Single platform/vendor Multi-lingual (…C#) SOAP-based Visual Studio .NET BizTalk and XLANG Simpler High volume focus Visual Basic, etc… link Desktop link Integrated SW stack MS sole provider of framework pieces Common look and feel Simplified deployment OSS – Mono? Interoperate through web services More: J2EE vs. Microsoft .NET
WebSphere Studio vs. VS .NET • IBM WebSphere Studio • Based on open-source Eclipse • Application portability – eServers, Windows, Linux, … • Portal development – Studio Page Designer • Support of Apache Tomcat and web services • Microsoft Visual Studio .NET • Focus and integrated with Windows • Greater language flexibility • Easy development lifecycle management • Visual Modeler; Common Dev Environments across all tools; Intellisense code checking; Visual debugging across languages; Deployment wizards; Load testing; Analyzer for distributed application performance • Enterprise skills are needed for complex applications regardless of choice!
Migration and Maturity • J2EE • Migration • None – requires rewrite • Best for new workloads • Can use web services to incorporate legacy IT assets • Also Corba and JNI bridges • Maturity – a few years • Some parts new – web services, portal, JCA 1.5 • .NET • Migration • COM/COM+ supported in .NET as non-Managed Object • Requires some rewrite/update to incorporate as Manage Obj. • Risk of migrating procedural “bad habits” • Web services • Maturity – less than 1 year; • some parts more than 1 Year – ADO, OS, COM+
Presentation and Rich Clients • The Java Platform • J2SE – not “dead” – useful, but not widely visible • J2ME – gaining lots of traction • Consistency across pervasive devices and portability • Upwardly scalable to J2SE and EE • Portlets – JSR 168 • IBM’s WSXL – web services experience language • Microsoft .NET Experiences • High value user environments that improve productivity • .NET My Services – repositioned • Design and PLM collaboration • Kinko’s remote printing • .NET Compact Framework; Mobile Internet Toolkit and Pocket PC SDK
Server-side Capabilities • J2EE • Session Beans (Stateful and Stateless) • Entity Beans and CMP / BMP • Message Driven Beans • Transaction differentiation – nested and optimistic transactions, CORBA • Clustering – z/OS Sysplex, data dependent routing for app partitioning, integration with network hardware • Liberty; Proprietary security models • .NET • ADO.NET • .NET Queued components • My Services .NET / Passport • J2EE richer, .NET simpler
Performance • IT should not decide based on “industry” benchmarks • Current J2EE vs .NET comparisons are embryonic • Not representative of user scenarios • All vendors can claim leadership in some configuration or against some defined scenario • Architect and developer skills *much* more important • That being said, .NET appears to have some potential inherent advantages • Method JIT granularity • J2EE has advantages of UNIX, AS/400 and S/390 when applicable
Acquisition Costs • J2EE offers the lowest acquisition cost with JBoss on Linux. Sun’s new LX 50 Intel server with Sun Linux and the Sun ONE J2EE server is competitive with Microsoft .NET on Dell hardware on a value-offered basis. Additionally, some midrange Solaris 9 configurations are competitively priced with Microsoft .NET on a value basis. • Microsoft .NET is a price leader when excluding open source J2EE and Linux and Sun Linux. • Java servlet platforms can be price competitive with .NET. • The J2EE leaders, BEA WebLogic Server and IBM WebSphere Advanced Edition, are considerably more expensive than Microsoft .NET on typical business logic tier midrange four-way systems. However, they offer greater proven enterprise application server capability and more maturity than Microsoft .NET Server or Windows 2000 Server with the .NET platform. • Acquisition prices converge at the higher end (eight-way systems) with the J2EE and .NET differences less than 10%.
Pricing and Packaging Type of System J2EE .NET Departmental (2-way) $4.5K-$6.9K $5.1K-$7.6K Mid-level application (4-way) $55K-$81K $48K PDM, Collab, etc.. Enterprise ERP (8-way) $189K $173K
Interoperability – Web Services ++ • Business Process/Documents • Transactions and Choreography • Description and Discovery • Messaging • Transport • Internet ebXML, RosettaNet, UBL BTP (ebXML), WSCI, BPEL, WS-T –C X M L ebXML WSDL UDDI SOAP, XML-RPC, ebXML.. HTTP, FTP, SMTP... TCP/IP Web Services Standards in Place Web Services Standards in Process
J2EE and Linux • Most J2EE costs > W2K/COM+ / .NET Server • J2EE OSes Solaris, Windows 2K, others • Linux offers J2EE opportunity • High volume on Intel HW; attractive to developers and potentially ISVs • J2EE + Linux may beless expensive than .NET Server (acquisition costs; solution pre-req cost) • IBM and BEA Strategy; Sun Strategy • The field is wide open for a significant shift in leadership wrt component frameworks; Microsoft’s new component model and licensing may open door even wider • JBoss – Wildcard which is gaining some traction • WebMethods, early adopter enterprises, developers
JBoss Opportunity • A popular development platform • >150,000 downloads/month • A leading application server in development • JBOSS: 42%, BEA 28%, Source: JBoss and Togethersoft • Features done by developers for developers • Hot deploy of apps/services/server • Simpler approach to packaging/deployment/compilation • Stability • Free – ISV prereq opportunity, e.g., webMethods • JBoss won “Best App Server” from JavaWorld in 2002 • Is JBoss the next Linux?
More on JBoss • To be added
Open Source .NET - Mono • Is an OSS implementation of the Microsoft .NET • Common Language Infrastructure (CLI) • Multi-lingual class library • C# compiler • Runtime will support .NET web services • “Soup” allows for web service creation and interoperbility • Long-term project and effects on standardization • Depends on ubiquity…e.g., does Mono get widely deployed on Linux or does J2EE win out?
More on Mono • To be added
Issues for J2EE Vendors • Improve development environment productivity to be more competitive with Visual Studio .NET. Specifically, simplify the programming model where possible. • Improve price competitiveness with Windows 2000 through .NET. JBoss is not supported by a large vendor. Sun SPARC hardware remains expensive. BEA WebLogic and WebSphere EJB containers are very expensive. Sun Linux on its new Intel-based LX 50 is a good start. • With the above issues improved, capture as many new developers as possible by leveraging Linux and Apache. • Complete the process of incorporating web services into the J2EE standard and add value by incorporating more of ebXML, particularly the higher level business collaboration standards. • Develop a strategy to ensure a heterogeneous client tier while simplifying the programming model – J2ME, J2SE, and embedded Linux efforts are fragmented and at medium to long term risk due to the added value being built into .NET at this level.
Issues for Microsoft • Ensure a robust and high-quality .NET Server release while maintaining the current schedule. • Improve user perception of Microsoft forward compatibility in the future from .NET V1 to V2+. • Demonstrate large scale, enterprise customer success stories with .NET on par with high-end UNIX and J2EE. • Either preempt ebXML standards at the higher levels with BizTalk and new web services standards or embrace ebXML. This must be done and delivered over the next 12-18 months requiring significant vendor agreement across complex issues. The new business process and transaction web services specifications are a step towards a standardized business collaboration framework. • Ensure both the technical (COM-to-.NET migration) and the license fee migration from NT and 2000 are as simple as possible and competitive for value offered against Apache Java and XML and J2EE on Linux.