Keeping track ofthe software impact ect, the competing "standards" can be bewildering. yet wocould you believe that today's choices actually make it a relatively easier time for enterprise developers, compared to the previous generations of tools? Microsoft and sun share compelling visions for a new enterprise architecture, and each vision features strong interoperability through Web Services and varous standards. it's certainly easier to deal with. net Framework and the Java 2 Platform Enterprise Edition (J2EE) now rather than handle five or ten largely incompatible visions, which is where the middleware industry was headed previusly. One of the most widely debated questions in the industry today is whether to choose Microsoft. net or J2EE. from an enterprise container tural planning perspective ,. net and J2EE have a great deal in common and the ongoing rivalry between Microsoft and Sun Microsystems as they seek to control the enterprise application development market can puzzle even the most dedicated developer. for developer Skills Transfer nicely between them. j2EE products from vendors such as BEA, IBM, Macromedia, Oracle, and sun have matured to the point where it's necessary for enterprise users ts to place bets on either. net or J2EE or both; the vast majority will place bets on both. for these reasons, think. net and J2EE as complementary, not competitive. it's not surprising that the J2EE /. net domain has B Een controversial and confusing. to begin with, both represent the culmination of decades of Software Evolution. for instance, sun's J2EE 1.3 tutorial weighs in at more than 700 pages, and there are using books on J2EE and. net that tip the scale at more than 1,300 pages. such heft is not surprising, given that these documents attempt to address almost the entire computing spectrum, from Enterprise Middleware to handheld devices. j2EE and. net are also dynamic and fast-moving projects, each building on a large number of standards initiatives, especially for XML and web services. as these standards are thrown together with the usual software industry marketing and propaganda, J2EE /. net competition is so intense that it's often difficult to remember what the software market was like before th Ey arrived. (Anyone embarking on a career in IBM's CICs or Bea's tuxedo these days ?) Clear up the terminology the inconsistent use of terminology has complicated the understanding of similarities and differences between the two models. terms such as objects, components, and services are used in both models, for example, but often with subtly different meanings. it doesn' t help that the press and industry analysts often compare specifications with product releases, and are imprecise About what's already ded in current releases versus what's planned for the future. even the scope of the competitive offerings is confusing. for example, J2EE products often include integration and portal services, while. net is generally used as a blanket term to describe all future Microsoft software and services. standing back from the hype and dynamic definitions, however, it's possible to disce Rn gateways in which J2EE and. net are converging toward a common enterprise architecture model. at the core of an enterprise application, there's almost always a database management system (DBMS), transaction processing (TP) Monitor, and message-oriented middleware (MOM) Service terminated ded, such as IBM WebSphere MQ, Microsoft Message Queuing (MSMQ), or tibco. indeed, in most enterprise contexts th Ere are usually multiple instances of each, although they're increasingly morphing into platform services instead of distinct server product categories-a trend accelerated by the advent of Web application servers. in the J2EE /. net model, both the underlying DBMS/TP/Mom services and the business application contexts are managed at an object-oriented (OO) level of specified action. the J2EE /. net Model br Ings the OO approach to mainstream enterprise computing, with powerful oo frameworks (class libraries) for services such as object persistence, transactions, web services, and more. this model greatly extends the scope of work that can be done declaratively (with little or no procedural coding ), and often primary des a page/form/Layout-driven drag-and-drop approach for application development. compon Ents are a key part of the J2EE /. net Model; think of them as collections of objects packaged and deployed together for simplicity, reusability, and flexibility. on the Java side, think "component" whenever you see "bean. ". NET Enterprise Services and J2EE's Enterprise JavaBean (EJB) features are especially powerful for enterprise components, offering object and Connection Pooling and robust load B Alancing services. UML-based tools are often used for J2EE /. NET Application Analysis and Design, both because UML's object orientation is ideal for the J2EE /. net implementation model and because of the expanding scope and complexity of today's enterprise endeavors. although the approaches diverge at the coding/implementation phase, a common set of analysis and design techniques applies to both j2e E and. net. the use of a Virtual Machine (VM) architecture is also common to J2EE and. net. application Development Tools-such as Borland JBuilder, Sun Forte for Java, and Microsoft Visual Studio. net-produce intermediate-level code instead of platform-specific binary code, which means the VM interprets that code in real time or performs just-in-time (JIT) compilation; the Microsoft VM always runs JIT-compiled code. this VM-based model results in platform-independent applications and is conducting cive to the late-binding technique that's critical to the OO approach. j2EE and. NET Share an asynchronous, loosely coupled, service-centric communication model, with application flow of control determined by messages among objects instead of sequential flow within monolithic programs. the newer model Is more appropriate for the inherently object-oriented natures of J2EE and. net, But it leads to a potentially steep learning curve for developers who are accustomed to the more traditional program-flow approach. finally, J2EE and. NET Share a broad common foundation of standards, especially around XML and web services. web services are rapidly becoming the neutral zone between J2EE and. net becau Se they offer a self-describing, vendor-and technology-independent means of inter-application communication over the Internet. if it weren't for Web Services, J2EE /. net interoperability wocould be much more problematic and Internet-based communication among applications based entirely on either. net or J2EE wocould be much more complex. the multi-tiered approach typically followed for J2EE and. net Pplications helps separate presentation from structure (for example, HTML at the presentation layer and XML at the business logic layer, and transaction from user interaction. given the scope of the new enterprise model, it's important to follow an approach that supports role specialization so that all developers shouldn't feel it's necessary to understand the entire big picture (see Table 2 for J 2ee /. net perspectives by enterprise application development role types ). here's where they differ although there's much common ground between J2EE and. net, significant differences remain. before moving forward, you'll need to make some choices. first, decide whether you want to program in a language other than Java. j2EE naturally focuses on the Java programming language, while. net supports Mult Iple programming languages ages-primarily C # and Visual Basic. net, but also extends others, ranging from COBOL to Eiffel. language developers must comply with. NET Common Language Interface to take full advantage of. NET Common Language Runtime (CLR) and framework. (it's definitely not your father's FORTRAN or Cobol .) there's nothing inherent to the JVM that precludes your using it with other pro Gramming languages, but at this point Sun is singularly focused on the Java programming language for its Java platform. another question for you to answer is how many platforms your shop supports. beyond run-almost-anywhere html/JavaScript client support, Microsoft addresses only Microsoft Server platforms. net, while J2EE products are available on a wide variety of platforms (including Windo WS ). at least one vendor, ximian, is focused on porting more. net to non-Microsoft platforms, but it's by no means clear whether they will be successful (or if Microsoft will allow them to ship anything broader than the parts. net standardized by the European Computer Manufacturers Association [ECMA]). interoperability is strong, thanks to Web Services, and both. net and J2EE support client Platforms using HTML, JavaScript, and Macromedia Flash, but the server-and Middle-ware-centric parts. net currently run only on Windows servers. is multi-vendor support an important consideration for you? Only one vendor supports. net, while multiple vendors support J2EE. however, cross-vendor portability for J2EE is definitely not the fabled "write once, run anywhere" scenario. this is due in part to its organic growth model, where vendors add their own web service features and other ex-tensions ahead of the J2EE specification process. j2EE vendor portability can be achieved by focusing on the parts of J2EE that are fully covered in the J2EE specification-such as servlets-but doing so is currently very constraining and even impossible. for example, EJB deployment Dimensions aren't completely addressed in the J2EE specification. decide how important an in-market track record is to your organization. j2EE products have been available for years, while the first products inactive ating. net Clr and framework were released only at the beginning of 2002. even though some key elements. net are based on Microsoft products and services that have been available for years (. NET Enterprise Services, built on the COM + architecture, first appeared in 1996 as part of Microsoft Transaction Server), the J2EE product market is more mature. whichever way you go, be assured that both. net and J2EE are rapidly evolving, as are the standards upon which they're based. currently. net leads in Web Services, while J2EE has a broader overall scope. in general, you can perform CT both to evolve and expand very rapidly. so far, the J2EE EJB model is more elaborate than its. net counterpart. EJB flavors include (stateless and stateful) session beans and entity beans (component-and bean-managed), while. net currently only supports des support for components similar to stateless session beans. this represents a difference in your tural vision between Microsoft and the Java Community process (JCP ). debates will continue until more real-world experience is available to help determine which approach is most valid tive for each ISES. determine whether ECMA standardization is important to your team. sun controls the JCP and owns the Java specification. although Microsoft maintains similar control over. net, it has submitted key parts of it to ECMA for standardization. despite its reputation as a predatory competitor, Microsoft cocould well out-maneuver the Java camp in terms of creating and building on industry standards. third-party support issues may have already made the demo-for you. component marketplaces are very practical for both J2EE and. net. while such marketplaces have historically been limited primarily to Visual Basic add-ins, the rich component and web service models supported in both J2EE and. net are conducive to much broader component marketplaces. support from application software vendors such as PeopleSoft, Siebel, and SAP will also contribute to the relative J2EE /. net momentum. if sap, for example, were to introduce a new version of its application suite that can be used as components in J2EE but not. net, such a move wowould influence the strategies and priorities of enterprise application into ts worldwide. finally, see for yourself. sun, Microsoft, and other vendors have conveniently provided a set of resources that simplify the processes of processing and comparing. net and J2EE, and highlight both the common elements and the ways in which the approaches diverge. sun created a Java pet store reference application as part of its Java blueprint. this sample application is representative of common enterprise applications. for example, it contains des components for customer, order, product, and shopping cart implementations. it's a nontrivial reference, with more than 700 individual files in the 1.3 version. not surprisingly, Microsoft and other vendors have seized upon the pet store application to showcase their products. microsoft's version provides a useful means of comparing. net and J2EE approaches, especially in terms of understanding the different component middleware approaches embodied in EJB and. NET components.
Don't worry, make users happy if you're like most movie ISES, You'll migrate gradually to J2EE and. net. especially during tight economical times, nobody is eager to "Rip and replace" working applications, and most wait ISES will wait for more case studies before placing strategic bets on either technology. enterprises that focus on common areas between J2EE and. net will benefit most because they'll leverage the transferability of skills and produce more reusable application components by using analysis and design techniques that apply to both, such as oo Analysis and Design Using UML. clearly, enterprises shoshould work with their application and service suppliers to ensure that the suppliers 'j2ee /. net priorities align with their own. it wocould be unfortunate, for example, if. net-committed shop learned that its leading application vendor was leaning toward J2 EE instead. net-although it wouldn't exactly be the end of the world, thanks to XML Web Services Interoperability. almost all organizations will use a mix of J2EE and. net, in part because the underlying platform choices are often dictated by existing application decisions. if your accounting department is already running Microsoft Great Plains, a J2EE version isn' t likely to appear soon. also, most organizations already use a mix of legacy Microsoft and Java-based tools and services, with the possible limits of Microsoft itself and some of the J2EE vendors, such as sun. overall, you shocould anticipate that the coming enterprise architecture model will result in a raised least common denominator for enterprise applications and middleware, which will simplify and extend what was previusly possible. perhaps most significantly, as back-end development tasks are simplified, you'll be able to operate Te more attention to areas that directly impact the user experience and productivity vity. imagine the benefits that directly impact user experience and productience, such as a richer user experience and support for multiple device types. PDAs, smart phones, set-top boxes, and game variables les cocould be your next calling.