Download Type of Technology

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Clusterpoint wikipedia , lookup

Microsoft SQL Server wikipedia , lookup

Open Database Connectivity wikipedia , lookup

Object-relational impedance mismatch wikipedia , lookup

Team Foundation Server wikipedia , lookup

Transcript
PROJECT TITLE: A sustainable E-Government system for the city of Fez, Morocco
Deliverable Authors:
Deliverable Title:
Deliverable Number:
Deliverable Date:
Houda Chakiri
Technologies, Architectures & Platforms choice.
Technology_Architecture_Platforms_choice.doc
15 September 2004
Abstract:
This report gives a state of the art about the different architectures, development tools,
and platforms used to develop a good e-government portal. a comparison between the
two platforms J2EE and .NET. Based on that study the team will make its choice on the
platform and technologies used in the Fes Egov project.
Abstract:
J2EE, .NET, 3-Tier Architecture, Web container, egovernment, content management, 3Tier
1
State-of-the-Art: Administrative tools, Access Devices, Portal
Server Products
This section covers three topics that combined shape the model for creating, managing
and delivering data through a portal (see Figure 1). The structure of the Section is
accordingly divided into three different parts: content creation tools, content management
tools and content delivery.
The Section provides an overview about administrative tools used to develop the Fes
Egov portal. The term “Administrative Tools“ has to be understood as applications for
retrieving, managing and introducing all types of service-related information. Hence the
term "administrative" stands for the administration of the information itself, not for the
management of the server.
The use of administrative tools by Public Authorities is as diverse as the nature of the
Public Authorities themselves. Using the portal server products as foundation, the
Administrative Tools require covering a large variety of possible tasks, helping many
different people involved in building and running an administrative site. Therefore the
Tools used may range from simple, handmade utilities to expensive, professional and
very specialised pieces of software.
Portals, including public sector portals, have to support multiple different devices to
access the content and interaction services. This section describes a list of the access
devices including PDA and Mobile.
2
Figure 1: Tools in various Phases
1 Content Creation Tools
Content Creation Tools are used by so-called “Content Contributors“ or “Content
Developers“ – page authors, application developers and site designers that are in charge
to add more or less specific content and functionality to a site. Contributions can be
programs, documents, PDF-files, animations, in fact all form of data imaginable.
Therefore a Content Contributor can be seen as any person who creates material which
visitors of a site can access or call for.
Tools for Content Contributors and Application Developers can either be Web
authoring/scripting tools, HTML editing tools, graphic/multimedia tools or document
conversion tools - merely all tools designed to help the creator of content to put it into
action on the site. Application developers will also use specialised tools to define the
application environment and bring it to life.
1.1 Development and Authoring Tools - Overview
This section contains a brief overview of the most widespread development Tools
currently on the market, mainly HTML editors that also offer a wide range of other
development possibilities. With the exploding use and popularity of the Internet the
variety and versatility of HTML-related tools has increased dramatically. The following
overview lists all major HTML editors and development tools available and shortly
describes their features. Many of the features included cover other areas than simple
HTML editing with the aim to offer complete authoring packages to its users.
3
1.1.1 MACROMEDIAs DREAMWEAVER / ULTRADEV / FLASH
Dreamweaver combines flexibility and ability to generate a clear and easy-to-edit source
code. It offers high-end features such as Dynamic HTML (DHTML), Cascading Style
Sheets, and Layers. Other features include Code View with live syntax coloring, tag
balancing, and auto indenting as well as an in-browser JavaScript Debugger. The new
Asset Panel allows to preview and manage images, colors, external URLs, scripts,
Macromedia Flash content, Shockwave content, QuickTime content, templates and
library items.
Furthermore, Dreamweaver comes with UltraDev Fireworks that basically creates, edits,
and animates Web graphics using a complete set of bitmap and vector tools, therefore
offering a visual development environment. You can also use export controls to optimise
images, give them advanced interactivity, and export them into Macromedia
Dreamweaver and other HTML editors.
Macromedia also offers Macromedia Flash 5, a tool designed to deliver low-bandwidth
animations and presentations for Web sites, offering scripting capabilities and server-side
connectivity. The content can then easily be viewed by using the Macromedia Flash
Player.
http://www.macromedia.com/
Thanks to its flexibility and ease of use Micromedia Dreamweaver Content creation
tool is choosed by the team to create static html web pages for the Fes Egov portal. In
the next paragraphs we will give a description of other tools on the market.
1.1.2 MICROSOFTs FRONTPAGE :
Frontpage 2000 offers easy-to-use publishing possibilities. Its intuitive interface is similar
to the ones known from other Microsoft office applications which helps to easily publish
information stored in an Access database or Excel spreadsheet without cutting, pasting,
and reformatting HTML code. The work of formatting, inserting graphics or sounds and
keeping track of all pages is a push-button simple experiment. The package also allows
easy use of ActiveX controls, plug-ins, and Java applets as well as more traditional
scripting features.
The update Frontpage 2003 offers in addition an integrated Folder list and navigation
pane as well as an option to create Photo gallerys with thumbnails. New, PowerPoint-like
drawing tools and ASP/XML source-code preservation capabilities allow to import code
without the need to modify it. Frontpage 2003 also features customisable link bars for
quick navigation, a site usage Analyser to analyse the site traffic, faster Web publishing
with drag-and-drop and a commerce manager as well as a Database Interface Wizard.
http://www.microsoft.com/
4
1.1.3 SOFTQUADs HOTMETAL PRO
Hotmetal Pro offers optimised visual design tools: WYSIWYG page and table editing,
CSS display, drag and drop frame editor; dynamic Button Maker and a browser-safe
colour chooser. Work with advanced authoring aids: context sensitive Attribute Inspector
and Element Lists, interactive validation, auto formatting, syntax coloring, line
numbering and enhanced site-wide search and replace. It also allows use of graphics,
backgrounds, applets, DHTML scripts and more with the drag and drop Asset Manager.
Optimised FTP capabilities allow for remote file editing and synchronised site updates.
Import HTML and develop own macros in JavaScript or VBScript using the Macro
Recorder. The new COM interface and enhanced scripting support enables interface
customisation plus the development of custom components for deployment.
http://www.hotmetalpro.com/
1.2 Programming and Application Development Tools
1.2.1 BORLANDs DELPHI
Borland Delphi is a rapid application development environment for Windows. It provides
a full complement of standards-based tools to control and deliver business data. It
features tools like „BizSnap“ for simplified business-to-business (B2B) integration with
Web Services, „WebSnap“ for fast Web application development or „DataSnap“ for
integrated data-access solutions through Web Service-enabled middleware. It allows
cross-platform Linux-Windows development with Borland’s own component crossplatform library CLX and is compliant with industry standards like SOAP, XML, WSDL
or XSL . It also offers support for Access, DB2, dBase, FoxPro, InterBase, Informix, MS
SQL, MySQL, MyBase, Oracle, Paradox and Sybase, using applications like dbExpress,
dbGo and the Borland Database Engine to integrate information in existing documents.
http://www.borland.com/
1.2.2 BORLANDs JBUILDER
Jbuilder is a visual development environment for building applications, applets,
JSP/Servlets, JavaBeans, Enterprise JavaBeans and distributed J2EE applications for the
Java 2 Platform. It offers XML tools for cross-device publishing and integration of
business data and allows to deploy to multiple application servers including the Borland
AppServer, BEA WebLogic and IBM WebSphere. Team development is done with
Rational Clearcase, Microsoft Visual SourceSafe, and CVS integration. Borland Jbuilder
goes for easy EJB and Web development and helps in building data-driven Web
applications, JSP and servlet development. Tutorials, samples, multimedia training and
300+ JavaBeans are also included with source.
5
http://www.borland.com/
Borland JBuilder is the Application development tools that was choosen by the team to
develop application for different depparements (Bureau d’etat civil department and
also for dynamic pages JSPs).
1.2.3 IBMs VISUALAGE FOR JAVA
IBM VisualAge for Java is a Java development environment and a key element of the
IBM Framework for e-business. VisualAge gives support for building and testing Java
applets, servlets, and Enterprise JavaBeans components. In addition it also supports the
development and management of Java programs that can scale from Windows NT to
OS/390 application servers.
VisualAge focuses on leveraging running applications and extending existing data - it
generates JavaBeans and Enterprise JavaBeans components for existing CICS TS,
TXSeries, MQSeries, Host On-Demand, and SAP R/3 transactions and connections. It
supports the J2EE Connector Architecture (beta) as well as the IBM Common Connector
Framework.
With the new Enterprise JavaBeans (EJB) 1.1 deployment support VisualAge allows for
a rapid development and deployment of applications that target the IBM WebSphere
platform, using a special WebSphere unit Testing Environment.
http://www-4.ibm.com/
1.2.4 WEBGAINs VISUAL CAFÉ 4.5 (ENT.PR. EDITION)
WebGain VisualCafé Enterprise Edition provides an environment for developing,
debugging and deploying Enterprise Java Beans (EJBs) across leading Java 2 Enterprise
Edition (J2EE) application servers including WebLogic Server and iPlanet. A single
developer seat, single connection of WebLogic Server 6.0 is included allowing remote
debugging, startup/shutdown and hot deployment. Enhanced JSP debugging, including
line-by-line debugging directly into JSPs, enables developers to quickly test and debug
the operation of a Java application within a JSP Web page.
WebGain's VisualCafé Enterprise Edition brings technology that simplifies the
development, verification, debugging and deployment of Enterprise Java Beans (EJB)
while adding support for the EJB 1.1 specification including XML-based deployment
descriptors. It inherits productivity features and database functionality from the
VisualCafé family and introduces new server-side development and distributed
debugging on leading application servers.
Unique Single-View distributed debugging makes it possible to view multiple processes
running simultaneously on different Virtual Machines, platforms and operating systems.
WebGain VisualCafé Enterprise has a new debugging engine that supports custom-class
6
loaders and hot deployment to BEA WebLogic Server 6.0 without having to restart the
server (automatic deployment and environment settings). Support for debugging into
JavaServer Pages will provide line-by-line debugging directly to the JSPs. VisualCafé 4.5
supports J2EE, EJB 1.1, Servlet 2.2, JSP 1.1, Swing, XML, CORBA, and RMI
technologies. It also supports JDK 1.3, JDK 1.2.2, and JDK 1.1.
http://www.webgain.com
2
Content delivery
The capability of accessing data in various ways, specifies the Portal Server products so
as to support multiple devices, to access content and interactive services. The following
section includes brief reviews of selected Portal Server products as well as relevant Web
Server products and Scripting Languages. Further, a review of access devices such as
Web Browsers, PDA and Mobile is included.
2.1 Portal server products
2.1.1 Introduction
The review covers key technical features and functionality of 12 different Portal Server
products. The products have been divided into horizontal portals and vertical portals
based on their nature. ‘Horizontal’ refers to portals that provide broad access to many
types of repositories and generic application-integration features. A ‘vertical’ portal is a
niche portal that is targeted for specific communities of interest or markets such as
healthcare. The general structure of a Portal is showed in figure 2. the figure shows a 3tier Architecture:
Tier
Tier
Tier 3: Database
1:
2:
Static
Application
content
logic
7
Figure 2: 3-Tier Architecture for Fes E-Gov Portal.
2.1.2 Categorization of Products
Portal server products on the markets can be categorized in three different groups. These
can also be divided in two different kinds: products that can be installed on any
environment and products that can only be installed in an environment that they support.
First group of portals is the market leaders. These provide scalability and have strong
market position and often also a powerful framework for application development.
Second group is the newcomers that have weak market position but may be stronger in
the future. Third group is the vertical portals that have ready-made features and are
suitable for fast portal setup. All the products in the market leaders and newcomers groups are horizontal by nature.
Table 1: Classification of Portal Server Products
Product Group
Market Leaders
Products
Oracle Portal
Sybase Enterprise Portal
IBM Websphere 3.5
BEA Weblogic
Newcomers
liferay
iPlanet Portal Server
8
Infoimage Freedom 2
Iona Iportal
Epicentric Portal Server 3.0
Jetspeed
Vertical Portals
Vignette
Autonomy Portal-in-a-Box
HummingBird EIP
The Market leader products have connections to established manufacturers. All of the
products have strong support either for CORBA connections, or for Messaging tools, or
both. These connections can be used to add the portal solutions over existing systems. All
of the products have connections to manufacturers’ other products. Oracle portal has to
be installed with the 8i database and it is part of the 9iAS application server environment.
IMB WebSphere portal server is connected to WebSpehere application server. Sybase is
connected to it’s own application server and BEA’s portal is actually only an extension of
an application server product.
As for the newcomers iPlanet Portal server is a product that can be added over any
existing environment. The new version of the product is going to be integrated to iPlanet
Application server. Also Epicentric portal server can be added on any existing system.
It’s not known to have any application server or other limiting connections. Iona iPortal
requires Iona’s own application server. Iona is well known for its connections to
CORBA. Infoimage runs in Microsoft environment and it can be added on a Microsoft
based system.
Both of the Vertical Portal products can be added on any existing environment.
HummingBird provides a complex framework; it isn’t an application development
platform but more like a “build your own intranet” product. There are separate versions
of Autonomy for Microsoft and Unix based environments.
2.1.3 Market Leaders
Liferay
Liferay is designed to deploy portlets that adhere to the Portlet API (JSR 168). Many
useful portlets are bundled with the portal (Mail, Document Library, Calendar, Message
Boards, to name a few) and can be used as examples for adding your own custom
portlets.
9
By adopting open source trends, Liferay is committing to innovation, robustness, and
community. Liferay is a safe technology investment for clients because being open
source leads to wider adoption by the technology community, the development of an
expert user base, and acceptance as a standard portal platform. Our MIT license is
business friendly and allows you to use, modify, or distribute Liferay with no license
fees.
An open source model also encourages robustness, as real users in real deployment
scenarios report enhancements and upgrades directly back to us. Finally, our commitment
to open source reflects our philosophy of helping improve the world community, and the
wide use of Liferay as a free portal solution by various not-for-profit organizations is a
testament to our success in that endeavor.
Liferay vs. Closed Source Portals
Liferay provides the lowest total cost of ownership. There are ZERO license fees. Liferay
has no application server agenda. You can develop portlets with a full featured IDE like
Eclipse, Netbeans, and JBuilder or with lightweight editor like EditPlus, VI, and Emacs.
Liferay vs. Open Source Portals
Not all open source licenses are created equal. Some licenses require that your
modifications be contributed if you choose to sell or distribute your product. Some open
source vendors still charge a license fee for commercial use.
Oracle portal
Oracle Portal is a horizontal portal solution and it is designed for many kinds of ebusiness solutions. It is part of Oracle’s 9i AS product family and it contains four
modules:

Oracle Portal Service controls all the logic and the operations of the portal.

Oracle Login Server contains user authentication and Single Sign On (SSO).

Oracle HTTP Server controls HTTP calls and it is powered by Apache.

Oracle 8i database.
Oracle Portal is a 100% Java application and was earlier known as WebDB.
All functionality of the Oracle Portal is handled by portlets. Portlets can be either Java or
PL/SQL based database procedures or they can be WWW-applications that are used via
the HTTP protocol. You can design Portlets or they can be bought from Oracle’s
partners. Oracle’s Portlet Development Kit (PDK) is a tool for the designing of portlets.
The provider handles all the portlets. _ Provider can be a database or Web provider. One
provider can contain multiple portlets.
10
Oracle Portal offers multiple functionality for personalisation of the portal and can be
made using the WWW interface. Both _ administrator and the user him/herself can make
the personalisation. Of course personalisation done by the user affects only user’s own
portal view.
Oracle Internet Developer Suite combines the Oracle Application Development tools,
Oracle Business Intelligence tools, the XML Developer's Kit (XDK) and the Portlet
Development Kit (PDK) in one product.
Oracle Internet Developer suite is based on Internet standards like J2EE, XML, SOAP,
UDDI, and UML, and provides an environment to build applications for Oracle9i
Application Server and Oracle 8i / 9i.
Oracle JDeveloper with Oracle Business Components for Java is an application
development tool that offers integrated support for building end-to-end e-business
applications for the internet. Oracle JDeveloper offers an integrated environment for
application developers to productively develop, debug, deploy, reuse, and customise
multi-tier, component-based Java and XML applications.
Oracle Reports Developer provides a development platform to build and publish
dynamically generated Web reports. Reports may be published throughout the enterprise
via a standard Web browser, in any chosen format, including HTML, HTMLCSS, PDF,
delimited text, RTF, PostScript, PCL, or XML.
Oracle Designer provides a task-oriented environment to model and generate server
DDL, client/server- and Web-based applications that exploit the power and portability of
Java and HTML user interfaces.
Oracle Discoverer is an ad hoc query, reporting, analysis and Web publishing tool that
enables business users at all levels of the organisation to gain immediate access to
information from relational data warehouses, data marts or online transaction processing
systems.
Oracle Repository is a comprehensive Software Configuration Management (SCM)
system integrated with the tools of Oracle Internet Developer Suite. It supports all types
of files and objects associated with software development life cycle, and supports
development teams of any size and distribution with version management, branching,
diff/merge, dependency management and impact analysis.
http://www.oracle.com/ip/deploy/ias/portal/index.html
Sybase Enterprise Portal
Sybase is one of the most advanced companies in portal markets today. Even the Gartner
Group and the Harvard Research Group have recognised this. Sybase used to be known
as a provider of critical infrastructure technologies such as high-end databases.
11
Nevertheless Sybase is a quite new player on portal markets, its Enterprise Portal was
released in the year 2000.
Sybase have a principle that it tries to build partner networks with other smaller
companies in portal markets. Therefore Sybase can take advantage of technologies
invented by these partners. The Sybase Enterprise Portal is clearly a horizontal portal,
although there are some ready-made business components like (Financial Fusion Server
and iAnywhere Wireless Server) most of the features have to be coded by a developer.
The Enterprise Portal supports COM/ActiveX- components and different programming
languages, like C, C++, Java, JavaScript, HTML.
The Enterprise Portal is most suitable for cases where integration with old legacy systems
is important. This integration is possible to do with Application Integrator products,
which comes with the Enterprise Portal. Information can be searched for from different
manufacturers databases, mainframe CICS applications and from CORBA applications.
Adapters to ERP, CRM and other vertical applications includes to the product. Sybase’s
weakest point is that its portal product may be too massive for companies with small and
relatively simple needs.
Sybase Enterprise Portal offers a good personalisation categorisation and workflow tools
to support dynamic publishing, project management, document management and version
controlling. Sybase’s Enterprise Portal can automatically categorise structured and
unstructured documents and index the most popular document formats.
The Sybase Enterprise Application Studio (EA Studio) includes Enterprise Application
Server, PowerBuilder and PowerJ.
PowerBuilder is an application development environment featuring, among others,
HTML support, drag-and-drop programming, DynaScript, Javascript, SQL and wizards.
PowerJ is an integrated environment supporting complete application and component
level development for the Java 2 Enterprise Edition Platform.
Additionally, the PowerDesigner is available as an analysis and design tool. It combines
UML object modelling and data modelling - including Java and XML.
http://www.sybase.com
IBM WebSphere 3.5
IBM WebSphere is a solution ‘to build’ e-business based portal products. It is a highly
horizontal type of software, which means that consumer, has a great responsibility when
building the functionality of it. It is based on EJB, J2EE, CORBA, Java- and XMLtechnology. IBM WebSphere has its own application server that has different version
depending on the consumer platform and needs.
12
WebSphere is not related to any specific products and it supports a great variety of
platforms like IBM AIX, IBM OS/2, IBM OS/390, IBM OS/400, Sun Solaris, HP-UX,
Microsoft Windows NT, Windows 2000, Linux, Novell NetWare.
Database support is also relatively scalable. It could be used with DB2, Oracle, Sybase,
Informix and SQL server, Teradatawhich are connected via JDBC.
WebSphere is a scalable product and it has good personalisation and authentication
functions. It also has great variety of different tools that help the consumer to build
his/her own portal. It is, however, a very heavy product and it has plenty of different
components that make it hard to set up. It is not a ready-made product, which means it
needs consumer programming.
IBM offers the WebSphere Studio. The WebSphere Studio is a set of tools supporting
page designers, graphic artists, programmers, and Webmasters. WebSphere Studio helps
to create, assemble, publish, and maintain dynamic interactive Web applications,
powered by IBM's WebSphere Application Server.
IBM WebSphere® Studio Homepage Builder makes Web authoring as easy as using your
favorite word processor. IBM claims , that the creation of Web sites with WebSphere
Studio Homepage Builder requires neither HTML knowledge nor programming skills.
IBMs Visual Age is a programming workbench not only for the WebSphere environment.
Visual Age is described in chapter 0.
IBMs HotMedia is a tool for multimedia aspects, but is not considered relevant for the
eGov project.
The WebSphere Site Analyzer provides analysis for enterprise Web site visitor trends,
usage and content, and WebSphere Commerce Suite reporting.
IBM offers a WebSphere Edition of Interwovens TeamXpress. Interwoven TeamXpress
is a solution for managing Web content. Interwoven TeamXpress can be used together
with WebSphere Application Server and WebSphere Personalization, to create a solution
for building and delivering personalised Web sites.
http://www-4.ibm.com/software/webservers
BEA Weblogic
BEA’s portal solution is a horizontal portal. It is mainly intended to be a technology
framework for building own solutions. The portal solution consists of three products:
BEA WebLogic Server, BEA WebLogic Personalization Server™ and BEA WebLogic
Commerce Server™ .
13
The products enable adaptable e-commerce applications that personalise customer
interactions. Personalisation capabilities and a set of pre-built templates and commerce
functions are included. Tools for creating and managing personalised content and
integrating with other e-analytics e-marketing systems are also included.
The Bea Weblogic Personalization server handles functionality like user, group and
profile management, business rule-based content advisor, content indexing and adapters
to Documentum and Interwoven Content Management and portal framework for
individualisation controls. It provides a complete Java 2EE-based framework for
assembling and operating dynamic, customised, personalised HTML interfaces.
The Bea Weblogic Commerce Server consists of the Bea Weblogic Personalization
server. Its functionality includes customer management integrated with UUP order
pipeline mechanism, pre-built pipeline components including shopping cart, tax,
payment, shipping, order management and a hierarchical product catalog.
WebGain Studio supports designing, developing, and deploying e-commerce
applications. WebGain Studio is an e-commerce development environment: It is
integrated with a leading HTML authoring environment for JSP editing, including JSP
extensions for leading application servers.
WebGain VisualCafe supports client and server side Java development including applets,
applications, servlets, JSP, CORBA and EJB components. The WebGain
StructureBuilder is a UML modelling and EJB code generation and deployment tool.
WebGain TOPLink maps objects to traditional relational databases providing an object
oriented means of database development and persistence capabilities to EJB containers.
http://www.beasys.com/
3
Web Servers and scripting languages
In this section we shall take a close look at the Web servers and the scripting languages
on the market. Portal server products normally include an http server and support all
commonly available Web servers.
3.1
Web Servers
This section will deal with the Web servers available on the market today. The main
purpose is to help identify the relevant ones that can be used for the Fes E-Gov project.
14
APACHE
Apache is the most popular Web server, available both on Unix and NT, but primarily
used on Unix. It is well supported with lots of free plugins, but only a few commercial
ones. Apache is free for use and there are also some companies offering paid support.
Apache is used widely by Internet Service Providers (ISP) and virtual hosting markets. It
is also available for the Mac through a company called Tenon that runs it under a virtual
Unix environment. It will also be the standard Web server on the new MacOS X.
In the Fes E-Gov Project we used Windows 2003 server for all our servers, as web
server the IIS will be used as web server.
MICROSOFT INTERNET INFORMATION SERVER (IIS)
This is the second most popular server. It is used heavily in intranets and e-commerce
sites due to its heavy integration with other Microsoft components. Microsoft IIS is only
available on NT, although ChiliSoft offers some migration tools if you want to use IISlike features on Unix too. Microsoft IIS is the preferred server for applications developed
under a Windows environment.
NETSCAPE / iPLANET
Now known as iPLANET (when America On Line (AOL) bought Netscape, the server
software went into a joint venture with Sun), it is still the third most popular server
software on the market today. Commercial publishing and other extensions tend to be
built to work with Netscape's server plugins. It is available for Unix and Windows
platforms, and will be mostly used for heavy server-side Java work.
3.2
Scripting languages
Scripting languages serve to provide functionality without requiring compilation. Since
scripting languages are interpreted, this functionality is available on any platform
providing an interpreter for the scripting language.
Here is an overview of the available scripting languages for the Web Servers described
above:
ASP/Perl
Microsoft's ASP is a framework. It defines a set of standard objects that may be used for
communicating with the Web server and the remote browser. These objects encapsulate
the HTTP protocol that is used for Web communication. Other languages can use the
ASP framework, and one such is Perl. There are two versions of Perl for ASP. The Unix
version (Apache::ASP) uses extensions to the Apache server that parse the ASP files
15
looking for embedded tags containing Perl code. That code is then executed. In addition
there are libraries that the code can call, and those libraries implement the ASP objects.
The Windows version of Perl for ASP is available from AciveState, and is called
PerlScript.
HTML::Embperl
Embperl does not use HTML tags to embed the code (it uses variations on square
brackets such as "[+ +]]". It also parses some HTML tags and handles them specially
based on the context. So, for instance, a form page will automatically be filled in if it
submits to itself (including checking items in a pick list—something that is usually a pain
to code in a scripting language), and table rows can automatically loop over the contents
of a Perl array or rows in a database without the need to explicitly create loops around
them. These features make doing certain common operations very straightforward, and
then the full inclusion of Perl makes everything else possible.
Embperl can also be run stand-alone, without a Web server, to create static Web pages.It
also has a powerful templating system similar to that in HTML::Mason, which allows to
create a set of partial Web pages (e.g. articles from a 'zine) and then automatically wrap
them in templates—rather like using frames, but without the frame.
JSP
Java Server Pages are tightly integrated with Java Servlets—in a sense it's a way of
creating a Java Servlet on the fly, where each page becomes its own servlet. Java code
fragments are embedded in the Web page, and the server compiles them on the fly.
As scripting language we are using JSP for dynamic pages (online services) using
JBuilderX.
PHP (PHP: Hypertext Preprocessor)
This is by far the most popular scripting language at shared-hosting facilities. (Perl-based
solutions are sometimes included at such facilities, but PHP is easy to configure for
shared hosting.) PHP's focus has been on providing routines for doing lots of basic things
very easily. There are native database interfaces to lots of databases (but no database
independent libraries), lots of string processing routines and other strong features. The
result is a language which beginners can get started with relatively easily, and yet it
allows powerful scripting . Unfortunately it doesn't get to leverage Perl's wide variety of
libraries.
Table 2: List of Web servers
16
Scripting Language Language
Smart Cached
Compliant
Servers
Web
ASP/Perl
Perl
Manually.
Apache (plugin), IIS
(PerlScript)
ASP/VBScript
VB-like
Yes
IIS
ColdFusion
Tag-based
Yes
Apache (CGI or
plugin),
Netscape
(CGI or plugin), IIS
HTML::Embperl
Perl
Yes
Apache
plugin),
(CGI)
HTML::Mason
Perl
Possible.
Apache
JSP
Java
Yes
Apache,
IIS
Lasso
Tag-based
No
WebSTAR, IIS
PHP
Perl-like
In PHP 4.0.
Apache,
IIS
Python/TagNo
based
Zope
4
(CGI or
Netscape
Netscape,
Netscape,
OS
Database Drivers
Notes
Uses ASP tags and the ASP object
model to embed Perl in HTML files.
Apache::ASP
and
ActiveState's
Unix
Perl-based
PerlScript are two different products, but
they attempt to stay compatible.
PerlScript is also available for Unix
systems.
Microsoft's
primary
ASP
NT/window
implementation. When people say
ODBC and native.
s 2000
"ASP" they usually mean using
VBScript in the ASP framework.
Solaris,
Linux,
ODBC and native The first
commercial embedded
HP/UX,
(see this table).
language for the Web.
NT/window
s 2000
Embedded Perl in HTML pages, with
Unix
Perl-based
built-in support for many common
HTML and site generation problems.
Uses ASP-like syntax to embed Perl in
Unix
Perl-based
HTML. Focus on site support features
such as templating.
UnixMacO
Embedded Java in HTML pages. JSP
S,
JDBC
implementations are available from Sun
NT/window
and a number of third party developers.
s 2000
Tag-based extension language, initially
MacOS,
ODBC and Native
developed primarily for FileMaker on
NT,window (FileMaker,
the Mac, but now cross-platform and
s 2000
Access, MSSQL)
with broader database support.
ODBC and Native
(Adabas
D,
MySQL, Oracle,
unix,
Probably the most popular embedded
InterBase,
NT,window
scripting language on *ix platforms.
Informix,
s 2000
Supported by most ISPs.
MSSQL, MySQL,
MSQL, Postgres,
Solid, Unix DBM)
ZODB
(object
db),
Oracle,
unix,
An object-oriented Web development
Sybase, ODBC,
NT,window
language using front-end tags and
Solid,
MySQL,
s 2000
backend Python programs.
PostgreSQL,
Python-based.
Access devices
This section aims to give an overview of the current situation concerning different access
devices. The section consists of two parts concerning the Web browsers, the wireless
applications.
4.1
Web Browsers
The evolution of Web browsers has been rapid especially in the early years of the WWW.
The lack of support for standards has been evident especially in the past and the HTML
standardisation efforts taken by the W3C (World Wide Web Consortium) have been more
17
than welcome. Today there are several different browsers available, although two leading
products (Microsoft Internet Explorer, Netscape Navigator) are dominating the market.
The following table aims to give a brief overview of commonly used Web browsers
(Microsoft Internet Explorer(IE), Netscape Navigator(NS), Opera and iCab) and their
support for different Web techniques in a summary like manner for Windows and Mac
respectively.
Table 3: Web Browsers for Microsoft Windows
Java
Frames
Tables
Plug-ins
Font size
Font colour
Java script
Style sheets
Gif 89
DHTML
Table colour
XML
Java
Frames
Tables
Plug-ins
Font size
Font colour
Java script
Style sheets
Gif 89
DHTML
Table colour
XML
Java
Frames
Tables
Plug-ins
Font size
Font colour
Java script
Style sheets
Gif 89
DHTML
Table colour
XML
4.2
IE 5.5
x
x
x
x
x
x
x
x
x
x
x
x
NS 6
x
x
x
x
x
x
x
x
x
x
x
x
Opera 4.02
x
x
x
limited
x
x
x
x
x
IE 5.0
x
x
x
x
x
x
x
x
x
x
x
limited
NS 4.7
x
x
x
x
x
x
x
x
x
x
x
IE 4.0
x
x
x
x
x
x
x
x
x
x
x
IE 3.0
x
x
x
x
x
x
x
x
x
IE 2.0
NS 4.5
x
x
x
x
x
x
x
x
x
x
x
NS 3.0
x
x
x
x
x
x
x
NS 2.0
x
x
x
x
x
x
limited
x
x
Opera 3.6
Opera 3.5
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
Wireless Access Devices
The group of wireless access devices can be roughly divided into three different
subgroups: the PDA-devices (Personal Digital Assistant), the PTD-devices (Personal
Trusted Device) and the Mobile phones. While PDA refers to handhelds such as Palm or
Psion, the term PTD refers to small telematic devices that use the mobile techniques in
18
order to execute functions that are often autonomous. The wireless applications are not
dependent on space or location and provide simple but yet fairly reliable means of
authenticating and profiling the user. This has been seen as suitable basis for making
personalised services.
The development of wireless applications has been rapid since the Wap Forum released
its first WAP (Wireless Application Protocol) specification in 1998 (v 1.0). Since then,
the WAP has become the de facto standard of the wireless communication and browsing.
In general, the fast development has led to certain problems that can be compared to the
early years of the Internet since the manufacturers and the service providers have been
unable to keep up with the pace of the standardisation. WAP itself has been based mainly
on WML (Wireless Markup Language) and WSP (Wireless Session Protocol).
The WML is better known to the public since it is the technique for visualising data. The
great expectations for WAP and the failure to meet them largely stem from the
weaknesses related to WML and the services provided using it. In fact the lesser-known
data transfer protocol WSP has been more of a success. The two are independent
techniques.
In fact one should note that the recent WAP v 2.0 specification has taken several
technical steps towards the Internet environment, which will most likely lead to WML
being replaced by xHTML in the future. Even if that would happen, the WSP would
prevail since the two are not dependent on each other. The future seems to stress the
growing importance of XML as an open standard for providing data for mobile devices.
One possible future standard for visualisation could also be cHTML (Compact HTML)
that is used in Japan.
From the service providers point-of-view the critical technical bottlenecks can be the
support of standards and especially the limited data transfer capacity of the mobile
devices. Even though the ability to visualise the information provided has improved
significantly during the last couple of years due to the improvement in displays, problems
still prevail. The WML itself is fairly well supported by several portal server products
and it can be created for instance by a simple XML/XSL-transformation. Yet the wireless
services still tend to rely on the SMS (Short Message Service), a feature that surprised
even the manufacturers by its popularity, rather than the WAP.
4.2.1 Products
When taking a closer look at the products, one should keep in mind that the technology
favoured by the critical mass is the one that tends to set the limits to the services
provided. The diffusion of technical innovations made in the most advanced models may
eventually reach the “mass-models” but this always takes its time. This is especially
evident with the mobile phones where most of the new phones sold today support WAP a technique that a couple of years ago was feasible for a few. One might argue that WAP
hasn’t yet reached its critical mass and the future will show if it ever will.
19
Some models of the biggest PDA and mobile phone manufactures are listed in the
following table. Both technologically advanced and popular models have been selected. .
Even if the sales provision of the most advanced models might be fairly marginal, they
give some sort of idea where the development is heading when on the other hand the
currently most popular models represent the median user.
Table 4: PDA-devices/Handhelds
Operating System
Palm VIIx
Palm OS v. 3.5
Standards
Supported
-
Palm m505
Palm OS v. 4.0
-
Psion Series 7
Symbian
Release 5
HTML
TCP/IP
Psion netBook
-
Hewlett Packard
Jornada 700 series
Compaq
iPAQ
H3635
WinCE 3.0
GIF/JPEG
HTML 3.2
WinCE 3.0
-
EPOC
3.2,
HTML
3.2,
HTTP/1.1,
Frames,
Java
Applets, SMTP,
POP3,
Features
Display
email,
Web
clipping/
browsing (PQAs
Browser), built in
wireless
connectivity
email,
Web
clipping,
browsing, SMS
email, browsing
(Symbian
Web
Browser)
fax, email and
Web browsing
16-bit grayscale,
160x160 (pixels)
Email,
browsing
Email,
browsing
640x240 (pixels),
colour
240x320 (pixels),
colour
Web
Web
16-bit, 65
colours
000
640x480 (pixels),
colour
640x480 (pixels),
colour
Table 5: Mobile Phones
Operating System
Standards
Supported
POP3,
IMAP4,
SMTP
Features
Display
Fax,
email,
WWW browsing,
640x200 (pixels),
colour
WAP
1.1
browser,
Bluetooth
functionality
Email,
WAP
(R380 2.0, WAP
1.1)
WAP 1.1 browser
WAP
1.1
browser,
96x60 (pixels)
Nokia
Communicator
9210
Nokia 6210
Symbian OS
-
-
Ericsson R380s
-
WML
1.1,
WMLScript 1.1
Ericsson T29
Motorola
Timeport 270c
-
-
310x100 (pixels)
33x13 (mm)
128x100 (pixels)
20
Siemens S35
-
Siemens SL45
-
HDML
2.0,
HDML 3.0, WML
1.1, WMLScript
1.1
-
Bluetooth
functionality
WAP 1.1 browser
101x80 (pixels)
WAP 1.1 browser
101x80 (pixels)
Platform choice J2EE versus .NET
1. INTRODUCTION:
The next generation of distributed computing has arrived. Over the past few years, XML has
enabled heterogeneous computing environments to share information over the World-Wide Web.
It now offers a simplified means by which to share process as well. From a technical perspective,
the advent of web services is not a revolution in distributed computing. It is instead a natural
evolution of XML application from structured representation of information to structured
representation of inter-application messaging. The revolution is in the opportunities this evolution
affords. Businesses have been offering products and services on the World-Wide Web for the past
few years. Have they not then been offering web services? In what way are web services actually
new? In an article entitled The Web Services (R)evolution - Applying Web Services to
Applications” Graham Glass, the CEO and Chief Architect of The Mind Electric defines a web
service as:
“A collection of functions that are packaged as a single entity and published to the network for
use by other programs. Web services are building blocks for creating open distributed systems,
and allow companies and individuals to quickly and cheaply make their digital assets available
worldwide.”
In this report I will compare and contrast the .NET platform and J2EE. It should be
pointed out that J2EE is a specification, not a product. Many vendors implement this
specification in products. The two most important J2EE vendor/products are IBM's
WebSphere and BEA's WebLogic. According to a recent study by Cutter Consulting,
these two vendors account for 59% of the J2EE market. Sun is a relatively minor player
but important in that it controls the J2EE specification. I will compare the overall J2EE
vision as defined by Sun (the owner of the specification) to the overall .NET platform
vision as defined by Microsoft.
2 Building web services:
Web services are in reality simply XML-based interfaces to business, application, and system
services, and are really old technologies wearing a new hat. The following technologies that have
gained the most industry acceptance, and is one possible way to perform web services:
21





A provider creates, assembles, and deploys a web service using the programming
language, middleware, and platform of the provider’s own choice.
The provider defines the web service in WSDL (the Web Services Description
Language). A WSDL document describes a web service to others.
The provider registers the service in UDDI (Universal Description, Discovery, and
Integration) registries. UDDI enables developers to publish web services and that
enables their software to search for services offered by others.
A prospective user finds the service by searching a UDDI registry.
The user’s application binds to the web service and invokes the service’s operations using
SOAP (the Simple Object Access Protocol). SOAP offers an XML format for
representing parameters and return values over HTTP. It is the communications protocol
that all web services use.
Note that the above technologies are only sufficient for simple web services. Extended business
exchanges require an agreed-upon structure for business transactions, multi-request transactions,
schemas, and document flow. These application requirements often stretch the limits of a purely
SOAP based implementation. This is the motivation for ebXML, which is a suite of XML
specifications and related processes and behavior designed to provide an e-infrastructure for B2B
collaboration and integration.
Note that the above approach is but one way of making web services work. There are other
choices as well, but we feel that these technologies are the most important and will achieve the
widest industry adoption. Because of this, in reality, we really haven’t reached complete
consensus on building web services, and there are still a lot of issues to be resolved. For example,
there is vendor disagreement on SOAP extensions, ebXML, and service flow descriptions. The
good news is that:
 For once, all major players, including Sun and Microsoft, generally agree that SOAP,
WSDL, and UDDI are good things and that they (or their standard derivatives) will
provide a foundation for the future.
 All the vendors are working together to establish web services standards, and a
foundation is emerging.
2 The J2EE and Microsoft.NET approach to Web Services:
To build a usable web services system, there is more than meets the eye. Your web services must
be reliable, highly available, fault-tolerant, scalable, and must perform at acceptable levels. These
needs are no different than the needs of any other enterprise application. J2EE and .NET are
evolutions of existing application server technology used to build such enterprise applications.
The earlier versions of these technologies have historically not been used to build web services.
Now that web services has arrived, both camps are repositioning their solutions as platforms that
you can also use to build web services. The shared vision between both J2EE and .NET is that
there is an incredible amount of 'plumbing' that goes into building web services, such as XML
interoperability, load-balancing, and transactions. Rather than writing all that plumbing yourself,
you can write an application that runs within a container that provides those tricky services for
you.
22
3 eGovernment Requirements:
For an egovernment portal or any web service to work properly the computer systems
that run egovernment portal must include certain capabilities. The most important are
these:



Interoperability - the systems must be able to share information with other
systems.
Availability - systems must be highly available.
Throughput - systems must be able to support high transactional throughput, since
requests will come from citizens businesses and other governmental systems.
In order to turn a profit, overall system cost must be kept as low as possible. The most
important determinants of system cost are these:




Development Costs - the cost of architecting and implementing the system.
System Management Costs - the cost of managing the system.
Unit of Work Costs - the cost of processing an egov portal transactions.
Scalability Costs - the cost of adding throughput to the overall system as the users
base increase.
These, then, will be the primary issues on which I will focus in this report: the three main
collaborative requirements (interoperability, availability, and throughput) and the four
main system cost determinants (development cost, system management costs, unit of
work costs, and scalability costs).
With that said, let's take a look at the details of each vision.
4. J2EE:
When thinking of the Java 2 Platform, Enterprise Edition, the key word is platform. Java
represents more than just a programming language, as it encompasses the VM technology
that lets compiled Java programs run unaltered on various machine architectures; tools to
compile, analyze, debug, and deploy Java programs; and other components, such as
browser plug-ins, rich media, and more. Talk about feature creep!
4.1
The
three
faces
of
About two years ago, Sun reorganized the Java platform into three profiles:



Java
The Java 2 Platform, Micro Edition (J2ME), for handheld and other lower-end
devices
The Java 2 Platform, Standard Edition (J2SE), targeted at desktop machines
The Java 2 Platform, Enterprise Edition (J2EE), installed on servers and
responsible for the heavy lifting in the Java world.
23
Although it's something of a simplification, you can think of J2ME as a subset of J2SE
and J2EE as a superset of J2SE.
4.2 J2EE definition:
Definition: J2EE is a Java-based technology stack, built on top of J2SE, that provides
developers with the development tools and runtime capabilities necessary to build
enterprise applications meeting rigorous uptime, security, scalability, and maintainability
requirements.
The latest version of J2EE is 1.3. Sun uses the J2EE platform to synchronize the
constituent technology specifications for specific releases. Here's a partial J2EE
components list:







JavaServer Pages (JSPs): Generate dynamic content for Web browsers and
mobile devices. JSPs resemble HTML, especially when developers use custom
tag libraries to remove Java code from the JSPs themselves, making them easier
to maintain.
Servlets: Build control and navigation logic into J2EE applications, typically
following a Model-View-Controller design pattern in conjunction with JSPs.
Enterprise JavaBeans (EJBs): The mainstay of the J2EE platform. There are
two main types of EJB: session beans that model business logic and entity beans
that model persistent data. When coded correctly, EJBs provide transparent
scaling, a security framework, a transaction model, and a container-managed life
cycle.
Java Connectivity Architecture (JCA): Lets Java enterprise applications
interface with existing non-Java enterprise applications like SAP. Specifically,
transactions and security roles can propagate, allowing you to fully utilize legacy
applications in a J2EE architecture.
Java Message Service (JMS): Provides asynchronous messaging capabilities to
the J2EE platform. Established message-oriented middleware (MOM) vendors
like IBM (MQ Series) and Tibco (Rendezvous) provide JMS faces to their
products.
Java Management Extensions (JMX): Manages J2EE servers and applications.
Java Naming and Directory Interface (JNDI): A required part of the J2EE
platform, JNDI provides component location transparency in a clustered J2EE
environment.
Although the following components are technically part of J2SE, they prove important
for J2EE applications as well:


Java Database Connectivity (JDBC): The real bread and butter of any
enterprise application! JDBC handles all database input/output via SQL.
The HotSpot Virtual Machine: Can run in server mode to better profile longrunning applications with stringent requirements for thread and memory
24
management. The HotSpot VM has addressed most of the initial concerns about
J2EE's performance.
Figure 1. High-level overview of the J2EE technology stack
The Java 2 Platform, Enterprise Edition (J2EE) was designed to simplify complex
problems with the development, deployment, and management of multi-tier enterprise
solutions. J2EE is an industry standard, and is the result of a large industry initiative led
by Sun Microsystems. It's important to realize that J2EE is a standard, not a product. You
cannot "download" J2EE. Rather you download a set of Adobe Acrobat PDF files which
describe agreements between applications and the containers in which they run.
So as long as both sides obey the J2EE contracts, applications can be deployed in a
variety of container environments. The J2EE camp's goal is to give customers choice of
vendor products and tools, and to encourage best-of-breed products to emerge through
competition. The only way this would ever happen is if the industry as a whole were
bought-into J2EE. To secure buy-in, Sun collaborated with other vendors of eBusiness
platforms, such as BEA, IBM, and Oracle, in defining J2EE. Sun then initiated the Java
Community Process (JCP) to solicit new ideas to improve J2EE over time. The reason
Sun did this is because they had to do so to achieve success--the best way to secure buyin to an idea is to involve others in defining that idea.
4.3 Java: The foundation for J2EE:
25
The J2EE architecture is based on the Java programming language. What's exciting about
Java is that it enables organizations to write their code once, and deploy that code onto
any platform. The process is as follows:
1. Developers write source code in Java.
2. The Java code is compiled into bytecode, which is a cross-platform intermediary,
halfway between source code and machine language.
3. When the code is ready to run, the Java Runtime Environment (JRE) interprets this bytecode
and executes it at run-time. J2EE is an application of Java. Your J2EE components are
transformed into bytecode and executed by a JRE at runtime. Even the containers are typically
written in Java.
4.4 J2EE and Web Services:
J2EE has historically been an architecture for building server-side deployments in the
Java programming language. It can be used to build traditional web sites, software
components, or packaged applications. J2EE has recently been extended to include
support for building XML-based web services as well. These web services can
interoperate with other web services that may or may not have been written to the J2EE
standard. J2EE web services development model is shown in Figure 2.
Briefly, Figure 2 is explained as follows:
26
Figure 2: Developing Web Services with J2EE.
J2EE application is hosted within a container, which provides qualities of service
necessary for enterprise applications, such as transactions, security, and persistence
services.
The business layer performs business processing and data logic. In large-scale J2EE
applications, business logic is built using Enterprise JavaBeans (EJB) components. This
layer performs business processing and data logic. It connects to databases using Java
Database Connectivity (JDBC) or SQL/J, or existing systems using the Java Connector
Architecture (JCA). It can also connect to business partners using web services
technologies (SOAP, UDDI, WSDL, ebXML) through the Java APIs for XML (the JAX
APIs).
27
Business partners can connect with J2EE applications through web services
technologies (SOAP, UDDI, WSDL, ebXML). A servlet, which is a request/response
oriented Java object, can accept web service requests from business partners. The servlet
uses the JAX APIs to perform web services operations. Shared context services will be
standardized in the future through shared context standards that will be included with
J2EE.
Traditional 'thick' clients such as applets or applications connect directly to the EJB
layer through the Internet Inter-ORB Protocol (IIOP) rather than web services, since
generally the thick clients are written by the same organization that authored J2EE
application, and therefore there is no need for XML-based web service collaboration.
Web browsers and wireless devices connect to JavaServer Pages (JSPs) which render
user interfaces in HTML, XHTML, or WML.
5. Microsoft’s .NET Platform
Some define .NET as a development platform for building XML Web services, while
others think it's a set of enterprise servers. Both lines of thinking prove correct, although
neither tells the whole story. To get a clearer picture, let's peek at .Net's basic elements:




Smart client software: Software for running a variety of smart clients, from
personal computers (Windows XP), to small-footprint devices like PDAs
(Windows CE .Net), to set-top devices (Windows XP Embedded).
XML Web services: Let applications share data and consume services provided
by other applications without regard to how those applications were built, what
platform they run on, or what devices access them. .Net includes implementations
of the latest accepted Web service standards, such as the XML Schema standard.
In addition, Microsoft plans to provide many commercially available foundation
services, called My Services, to serve as application building blocks. As a recent
example, the MapPoint.Net Web service integrates maps and driving directions
into applications. (That effort, however, has recently lost some momentum
because partners have been slow to jump on board.)
Enterprise servers: Products that support enterprise applications by addressing
different parts of the overall solution. Among the offerings in the mix are
Application Center for deploying and managing Web applications, BizTalk Server
for coordinating XML-based business processes across applications and
organizations, and the SQL Server database application.
Development tools and the runtime environment: Includes Visual Studio .Net,
a single integrated development environment for building .Net applications, along
with the .Net Framework, which in turn includes the Common Language Runtime
(CLR), ASP.Net (a new Web development environment for building Web
applications and XML Web services), and an extensive set of framework class
28
libraries.
Figure 3. The .Net Framework
Microsoft.NET is product suite that enables organizations to build smart, enterprise-class
web services. Note the important difference: .NET is a product strategy, whereas J2EE is
a standard to which products are written. Microsoft.NET is largely a rewrite of Windows
DNA, which was Microsoft's previous platform for developing enterprise applications.
Windows DNA includes many proven technologies that are in production today,
including Microsoft Transaction Server (MTS) and COM+, Microsoft Message Queue
(MSMQ), and the Microsoft SQL Server database. The new .NET Framework replaces
these technologies, and includes a web services layer as well as improved language
support. The developer model for building web services with Microsoft.NET is shown in
Figure 4.
29
Figure 4: developing Web Services with Microsoft .NET.
Briefly, Figure 4 is explained as follows:
The .NET application is hosted within a container, which provides qualities of service
necessary for enterprise applications, such as transactions, security, and messaging
services.
The business layer of the .NET application is built using .NET managed components.
This layer performs business processing and data logic. It connects to databases using
Active Data Objects (ADO.NET) and existing systems using services provided by
Microsoft Host Integration Server 2000, such as the COM Transaction Integrator (COM
30
TI). It can also connect to business partners using web services technologies (SOAP,
UDDI, WSDL).
Business partners can connect with the .NET application through web services
technologies (SOAP, UDDI, WSDL, BizTalk).
Traditional 'thick' clients, web browsers, wireless devices connect to Active Server
Pages (ASP.NET) which render user interfaces in HTML, XHTML, or WML.
Heavyweight user interfaces are built using Windows Forms.
5.1 The .NET Framework:
Microsoft.NET offers language-independence and language-interoperability. This is one
of the most intriguing and fundamental aspects of the .NET platform. A single .NET
component can be written, for example, partially in VB.NET, the .NET version of Visual
Basic, and C#, Microsoft’s new object-oriented programming language.
How does this work? First, source code is translated into Microsoft Intermediate
Language, sometimes abbreviated MSIL, sometimes IL. This IL code is languageneutral, and is analogous to Java bytecode. The IL code then needs to be interpreted and
translated into a native executable. The .NET Framework includes the Common
Language Runtime (CLR), analogous to the Java Runtime Environment (JRE), which
achieves this goal. The CLR is Microsoft’s intermediary between .NET developers’ source code
and the underlying hardware, and all .NET code ultimately runs within the CLR.
This CLR provides many exciting features not available in earlier versions of Windows DNA,
such as automatic garbage collection, exception handling, cross-language inheritance, debugging,
and “side-by-side” execution of different versions of the same .NET component.
5.2 .NET Servers:
The .NET platform includes the following .NET Enterprise Servers. Many of these are
repackagings of existing products under a common marketing term:
SQL Server 2000 is Microsoft's relational database.
Exchange 2000 Server is a messaging and collaboration platform useful in developing
and running core business services and is now tightly integrated with Windows 2000.
Commerce Server 2000 offers you quicker and less complicated development and
deployment of customizable online e-commerce solutions.
Application Center Server 2000. Application Center Server 2000 lets you manage
clustered servers.
Host Integration Server 2000. Host Integration Server 2000 gives you access to selected
legacy systems running on other platforms (primarily IBM-based).
Internet Security and Acceleration (ISA) Server 2000 offers firewall and Web caching
capabilities.
BizTalk Server 2000 is Microsoft’s XML-based collaborative e-business solution for
integrating applications, trading partners and business processes via the internet.
31
6. J2EE and .NET comparison:
To help you understand both models, we offer analogies between J2EE and .NET
technologies in Table 1. This table only showcases the similarities--we will get to the
differences in a few moments.
Feature
Type of Technology
Middleware Vendor
Interpreter
Dynamic Web Pages
Middle-Tier Components
Database Access
WSDL, SOAP, UDDI
Implicit middleware
J2EE
Standard
30+
JRE
JSP
EJB
JDBC, SQL/J
YES
YES
.NET
Product
Microsoft
CLR
ASP.NET
.NET managed components
ADO.NET
YES
YES
Table 1: Analogies between J2EE AND .NET
6.1 Web Services Platform Recommendation Criteria:
US Federal Enterprise Architecture Program Management Office conducted a
comparison between J2EE and .Net technologies. (Component-Based Architecture White
paper, version1.3).
J2EE
.NET
Cross Platform Portability/OS Independent
***
*
Mature (not antiquated) Technology
**
*
Loose Integration of Heterogeneous systems
***
***
Infrastructure Independent
***
***
Standards-Based
***
**
Non-proprietary Extensibility
***
*
Ease of Development/Integration
**
***
Application Interoperability
***
***
32
Final Analysis
22/24
17/24
6.2 Time-to-Market Features:
One way to speed time to market is to choose a Web services platform that allows rapid
application development. This enables developers to write and maintain code quickly,
lowering development time. Both Sun J2EE and Microsoft .NET provide runtime
mechanisms that insulate software developers from particular dependencies. In addition
to a web service-oriented XML layer of indirection between platforms, languages, and
enterprise architectures, Sun J2EE and .NET offer language-level intermediation via the
Java Runtime Environment (JRE) and the Common Language Runtime (CLR)
respectively.
J2EE offers several features that accelerate time-to-market which are not found in .NET.
For example, state management services enable developers to write less code and not
worry about managing state, resulting in a higher degree of rapid application
development. State management services enable you to build components that hold state.
Persistence services (entity beans) enable developers to write applications without coding
data access logic, resulting in leaner, database-independent applications that are easier to
build and maintain. Programmatic transactions allow you to have greater transactional
control. And custom tags are extremely powerful, and empower developers and web
designers to easily collaborate.
In addition to these features that enable rapid application development, there are several
features that specific vendors offer which aid time-to-market, such as business process
management, E-Commerce components, XML-based legacy integration, and enhanced
B2B collaboration. A warning: Customers who elect to leverage these features will
sacrifice portability. This is a consequence of J2EE architecture not being all things to all
people. However, it should be noted that even after taking advantage of such proprietary
features, there would still be a great deal more portability in the end solution than the
.NET alternative.
Microsoft.NET offers a variety of time-to-market features not found in J2EE as well.
Most notably, ASP.NET is independent of client device, and allows for user interfaces to
be rendered to alternative user interfaces without rewriting code. Microsoft also offers
Queued Components which are superior to MessageDriven Beans. It should be noted
here that Microsoft has tried to simplify server-side programming greatly by removing
support for features found in traditional enterprise applications, such as stateful servers
and simple transactions. If developers need to go outside this box, their code must be
made to be non-managed and reside outside the .NET Framework rather than take
advantage of it. Microsoft also provides business process management and E-Commerce
capabilities, which are available in some J2EE implementations but not all.
In conclusion, we feel the ability to achieve rapid application development offered by
both J2EE and .NET is definitely not equal. It is, however, comparable. The feature
differences are minor and it is very difficult to make a compelling argument either way.
33
We do not recommend organizations make their platform decision based upon them.
There are larger business issues at hand that dictate the platform choice.
6.3 Single-Vendor Solution:
When building web services, in general you should always prefer to have a single-vendor
solution. A single vendor solution is usually more reliable, interoperable, and less errorprone than a two-vendor bridged solution.
One of J2EE's strengths is that it has spawned a wide variety of tools, products, and
applications in the marketplace, which provide more functionality in total than any one
vendor could ever provide. However, this strength is also a weakness. J2EE tools are
often-times not interoperable, due to imperfections in portability. This limits your ability
to mix and match tools without substantial low-level hacking. With lower-end J2EE
implementations, you need to mix and match to get a complete solution, and this is the
tradeoff when choosing a less complete package. Larger vendors, such as IBM, Oracle,
BEA, and iPlanet, each offer a complete web services solution.
.NET provides a fairly complete solution from a single vendor--Microsoft. This solution
may lack some of the higher end features that J2EE solutions offer, but in general, the
complete web services vision that Microsoft will be providing is equal in scope to that of
a larger J2EE vendor.
Another way to look at a single-vendor solution is from a legacy perspective. Many
legacy systems are written by J2EE vendors, such as IBM or BEA. J2EE offers a singlevendor solution from the legacy integration perspective, since you can re-use existing
relationships with those vendors. A J2EE solution would therefore be a single-vendor
solution, since you can stay with that legacy system vendor rather than inject a new
vendor such as Microsoft. For users with existing Microsoft-based systems, the reverse
argument applies.
6.4 Support for Existing Systems:
Most large corporations have existing code written in a variety of languages, and have a
number of legacy systems, such as CICS/COBOL, C++, SAP R/3, and Siebel. It is vital
that corporations be given an efficient, rapid path to preserve and reuse these
investments. After all, it is likely that businesses will have neither the funds nor the time
to reinvent all existing systems. This legacy integration often is one of the most
challenging (if not the most challenging) tasks to overcome when building a web service.
There are several ways to achieve legacy integration using J2EE, including
 The Java Message Service (JMS) to integrate with existing messaging systems
 Web services to integrate with any system
 CORBA for interfacing with code written in other languages that may exist on
remote machines.
 JNI for loading native libraries and calling them locally.
34
But by far, the most important part of the J2EE vision for integration is the J2EE
Connector Architecture (JCA). The JCA is a specification for plugging in resource
adapters that understand how to communicate with existing systems, such as SAP R/3,
CICS/COBOL, Siebel, and so-on. If such adapters are not available, you can write your
own adapter. These adapters are reusable in any container that supports the JCA. The
major vendors of existing systems are bought into the JCA.
.NET also offers legacy integration through the Host Integration Server 2000. COM
Transaction Integrator (COM TI) can be used for collaborating transactions across
mainframe systems. Microsoft Message Queue (MSMQ) can integrate with legacy
systems built using IBM MQSeries. Finally, BizTalk Server 2000 can be used to integrate
with systems based on B2B protocols, such as Electronic Data Interchange (EDI) (the
reader should note, however, that BizTalk does not serve as an access point to a
proprietary network on which EDI takes place).
In conclusion, we believe that the legacy integration features offered by J2EE are
superior to those offered by .NET. The JCA market is producing a marketplace of
adapters that will greatly ease enterprise application integration. Integration with
packaged applications and legacy systems will become much easier--imagine integrating
with a system such as Siebel, Oracle, or SAP without ever leaving the Java programming
environment. There is no analog to this in the Microsoft domain; rather, there is limited
connectivity to select systems provided off-the-shelf through the Host Integration Server.
6.5 Market Perception:
When comparing two platforms, your first instinct is probably to compare the
technologies. The unfortunate reality is that good technology rarely succeeds in the
marketplace because it's good technology. Usually it's the technology with the best
marketing that wins. J2EE is an extremely well-marketed platform because it is being
marketed by an entire industry of 50+ assorted vendors. This network of interdependent
businesses form a virtual marketing machine, and the result is a fantastic market
perception for J2EE.
.NET's marketing strength stems from the fact that Microsoft knows how to market a
platform. They have put their "A" team on marketing .NET, as is apparent in the industry
hype surrounding the platform. This is a powerful force not to be reckoned with.
Microsoft's advantage is also that it announced it's web services strategy before the J2EE
players, which gave it market perception. So in the marketing front, we give the nod to
Microsoft for doing the best job in hyping their platform--so far.
6.6 Maturity of Platform:
Organizations that adopt a web services platform must consider the maturity of the
underlying platform. A less mature, earlier-generation platform is more prone to errors
and problems.
35
J2EE is a veneer atop existing J2EE solutions. J2EE deployments are alive and healthy,
running a variety of mission-critical business problems today. However, when looking
past the surface, it should be noted that there are some identifiable areas of risk where
J2EE lacks maturity:
 The automatic persistence provided EJB is still immature.
 The Java Connector Architecture (JCA) is new.
 All web service support is new.
For Microsoft.NET, the story is a bit different. Some of .NET is based on Windows
DNA, which also runs a variety of mission-critical web sites today and enjoys success.
However:
 With the new CLR, a good portion of the underlying .NET platform has been
substantially rewritten. Indeed, the platform itself is currently only available in a
beta version.
 C# is new.
 All web service support is new.
In conclusion, we must find that J2EE is the more mature platform. It is true that certain
new features in J2EE are new and risky. However, the very underlying fabric of .NET, is
an overhauled rewrite, and the entire C# language is brand new. This represents
enormous risk compared to the new J2EE features. This best thing about .NET is that it
removes the dependency on the COM Registry -- .NET will do away with DLL Hell. But
the worst thing about .NET is that it tosses out the existing infrastructure. We recommend
that the risk averse take a 'wait and see' approach with first-generation software such as
this.
6.7 Language Support:
J2EE promotes Java-centric computing, and as such all components deployed into a J2EE
deployment (such as EJB components and servlets) must be written in the Java language.
To use J2EE, you must commit to coding at least some of your eBusiness systems using
the Java programming language. Other languages can be bridged into a J2EE solution
through web services, CORBA, JNI, or the JCA, as previously mentioned. However,
these languages cannot be intermixed with Java code. In theory, JVM bytecode is
language-neutral, however in practice, this bytecode is only used with Java.
By way of comparison, .NET supports development in any language that Microsoft's
tools support due to the new CLR. With the exception of Java, all major languages will
be supported. Microsoft has also recently introduced its new C# language which is
equivalent (with the exception of portability) to Java and is also available as a
programming language within the Visual Studio.NET environment. All languages
supported by the CLR are interoperable in that all such languages, once translated to IL,
are now effectively a “common” language. A single .NET component can therefore be
written in several languages.
The multiple language support that Microsoft has introduced with the CLR is an exciting
innovation for businesses. It is clearly a feature advantage that .NET has over J2EE. But
36
is the CLR a business advantage for you? This is a more interesting discussion. We are a
bit concerned that the CLR may represent a poor design choice for you if more than one
language is used. This is for the following reasons:
Risk. Many existing systems are internally convoluted. Disrupting such existing systems
is a risky proposition, since knowledgeable engineers, original source code, and a general
understanding of the existing system are often-times unavailable. The old adage, "if it
ain't broke, don't fix it" applies here.
Maintainability. We speculate that a combination of languages running in the CLR may
lead to a mess of combination spaghetti code that is very difficult to maintain. If you have
an application written in multiple languages, then to fully develop, debug, maintain, and
understand that application, you will need experts in different languages. The need to
maintain code written in several languages equates to an increase in developer training
expenditures which contributes further to an increased total cost of ownership.
Knowledge building. With combination language code, your developers are unable to
share best practices. While individual productivity may increase, communication breaks
down, and team productivity decreases.
Skills transfer. While developers using different languages may have very quickly coded
a .NET system using VB.NET and C#, what happens if the new C# developers leave your
organization? You have two choices. Train your VB.NET developers to understand and
write code with C#, or hire other C# developers who know nothing about your code base.
The resulting lack in productivity equates to a reduced time to market and a higher total
cost of ownership.
In most cases, we feel that it's much better design to standardize on a single language,
and to treat legacy systems as legacy systems and integrate with them by calling them
through legacy APIs, which can be achieved using either J2EE or .NET.
We do feel the CLR still adds significant value. The value is that a new eBusiness
application can be written in a single language of choice other than Java. This is useful
for organizations that are not ready to embrace Java. However, again we must provide
words of caution.
 It will not be seamless to transition existing developers from their familiar
language into productive .NET developers. Procedural languages such as COBOL
and VB are being rewritten for .NET to be object-oriented. Teaching developers
object-oriented programming is much more of a stepping stone than
understanding syntactical rules.
 Languages such as COBOL or VB were never intended to be object-oriented.
Legacy code will not seamlessly transition into .NET. The resulting code is
forever bound to .NET and can never be taken from its .NET home.
 We question the general wisdom in reinvesting in outdated technologies, such as
COBOL, with new eBusiness or web services initiatives.
37
In summary, there are pros and cons to both approaches to language support. Use the
approach that best suits your business needs, but at least be aware of the consequences of
your decision.
6.8 Migration from Previous Platform:
For organizations who have an existing deployment using either J2EE-based technologies
or Windows DNA-based technologies, an interesting discussion is the ease of migration
from the previous platform to the new platform. J2EE does not impose many migration
problems. As previously mentioned, the Java Connector Architecture (JCA) as well as the
web services support in J2EE is brand new and will require new code, but those are
minor overall.
Although Microsoft.NET is based on MTS and COM+, we are concerned that the
migration to .NET will be taxing compared to J2EE. First off, .NET is based on the
“managed code” framework, which steals a lot of ideas from COM+ and MTS, but it’s
still an entirely new infrastructure based on an entirely new code base – CLR. Taking
advantage of the most valuable aspects of the CLR impose one-time frictions.
For example to accommodate a Common Type System (CTS) which standardizes on data
types used between languages, the original Visual Basic data types have been dismissed.
Consequently, code dependent upon those original Visual Basic data types will break,
and there is currently no migration tool.
Another example is the COM+ migration path. In .NET terminology, code that runs
within the CLR is referred to as managed code, while code running outside the CLR is
called unmanaged code. If you're a COM+ developer and want to take advantage of the
new CLR, then you have two options for migration:
Rewrite existing code as CLR code. COM+ code needs to be rewritten to accommodate
the CLR’s automatic garbage collection mechanism and its deprecation of pointers.
Dependencies also need to be removed to the COM registry.
Keep your existing code as unmanaged. To collaborate between managed and
unmanaged code, special measures must be taken.
So as you can see, migration is not free. But to Microsoft's credit, we do understand that
with the innovation of the CLR, that this is a necessary step for their customers to evolve
into their new platform, and with such a radical change nothing less could be expected.
However, we feel obligated to warn users that the migration path will not be easy
compared to J2EE migration path, as some might have you believe.
6.9 Portability:
A key difference between J2EE and .NET is that J2EE is platform-agnostic, running on a
variety of hardware and operating systems, such as Win32, UNIX, and Mainframe
38
systems. This portability is an absolute reality today because the Java Runtime
Environment (JRE), on which J2EE is based, is available on any platform.
There is a second, more debatable aspect of portability as well. J2EE is a standard, and so
it supports a variety of implementations, such as BEA, IBM, and Sun. The danger in an
open standard such as J2EE is that if vendors are not held strictly to the standard,
application portability is sacrificed. CORBA, for example, did not have any way to
enforce that CORBA middleware did indeed comply with the standard, and thus there
were numerous problems with portability. In the early days of J2EE there were the same
problems.
To help with the situation, Sun has built a J2EE compatibility test suite, which ensures
that J2EE platforms comply with the standards. This test suite is critical because it
ensures portability of applications.
Our opinion is that in reality, J2EE portability will never be completely free. It is
ridiculous to think that complex enterprise applications can be deployed from one
environment to the next without any effort, because in practice, organizations must
occasionally take advantage of vendor-specific features to achieve real-world systems.
However--and this is important--portability is exponentially cheaper and easier with J2EE
and the compatibility test suite than with proprietary solutions, and that is a fact we stand
behind through years of consulting with customers using a variety of J2EE solutions.
Over time, as the J2EE compatibility test suite becomes more and more robust,
portability will become even easier.
By way of comparison, .NET only runs on Windows, its supported hardware, and the
.NET environment. There is no portability at all. It should be noted that there have been
hints that additional implementations of .NET will be available for other platforms.
However, a question remains – how much of the complete .NET framework will be
supplied on other platforms? History has taught us to be skeptical of Microsoft's claims
of multiple platform support. Microsoft ported COM to other platforms, but never ported
the additional services associated with COM that were necessary to make COM useful.
We find it hard to believe that .NET portability will ever become a reality given
Microsoft's historically monopolistic stance.
6.10 Web Services Support:
The future of eBusiness collaboration is undoubtedly web services. For organizations that
are pursuing a web services strategy, or are preparing for the future of web services, their
underlying eBusiness architecture must have strong web services support.
Today, J2EE supports web services through the Java API for XML Parsing (JAXP). This
API allows developers to perform any web service operation today through manually
parsing XML documents. For example, you can use JAXP to perform operations with
SOAP, UDDI, WSDL, and ebXML.
39
Additional APIs are also under development. These are convenience APIs to help
developers perform web services operations more rapidly, such as connecting to business
registries, transforming XML-to-Java and Java-to-XML, parsing WSDL documents, and
performing messaging such as with ebXML. A variety of J2EE-compatible 3rd party
tools are available today that enable rapid development of web services. There are at least
sixteen SOAP implementations that support Java. Almost all of these implementations
are built on J2EE (servlets or JSP). There are only five UDDI API implementations
available, and four of them support Java (IBM UDDI4J, Bowstreet jUDDI, The Mind
Electric GLUE, and Idoox WASP). Third-party software vendors such as Tradia
(www.tradia.com), CapeClear (www.capeclear.com) and The Mind Electric
(www.themindelectric.com) also offer tools for creating web services.
The preview release of Microsoft.NET also enables organizations to build web services.
The tools that ship with Microsoft.NET also offer rapid application development of web
services, with automatic generation of web service wrappers to existing systems. You can
perform operations using SOAP, UDDI, and SDL (the precursor to WSDL). Visual
Studio.NET provides wizards that generate web services.
Our conclusions from our web services comparison are as follows.
With J2EE, one can develop and deploy web services today using JAXP. However, this is
not the ideal way to build web services, since it requires much manual intervention. An
alternative is for organizations to leverage 3rd party libraries to accelerate their
development. In the future these libraries will be standardized through the JAX APIs. For
now, if you develop web services rapidly, you'll need to bundle these libraries with your
application.
With .NET, one can develop web services today using the partial release of .NET.
However, since this is only a beta implementation, it does not represent a realistic
deployment platform. Another issue with .NET is that it does not support true web
services because of a lack of support for ebXML. ebXML is a very important standard for
eBusiness collaboration, and is experiencing broad adoption from around the world.
Thousands of vendor and non-vendor companies, government institutions, academic and
research institutions, trade groups, standards bodies, and other organizations have joined
the ebXML community.
This includes HL7 (Health Care), OTA (Open Travel Alliance), RosettaNet, OAG (Open
Applications Group), GCI (Global Commerce Initiative), and DISA (Data Interchange
Standards Association). Undoubtedly, ebXML is going to be an important force in web
services, and we hope that Microsoft chooses to embrace it. Microsoft is still clinging to
their BizTalk proprietary framework which has proprietary SOAP extensions. This
evidence makes us question Microsoft's true commitment to open and interoperable web
services.
40
6.11 Tools:
The Sun J2EE Product Portfolio includes Forte, a modular and extensible Java-based IDE
that pre-dates both Sun J2EE and .NET. Developers who prefer other IDEs for Java
development are free to use WebGain’s Visual Café, IBM’s VisualAge for Java,
Borland’s JBuilder, and more. Numerous 3rd party tools and open source-code products
are available.
Microsoft has always been a strong tools vendor, and that has not changed. As part of its
launch of .NET, Microsoft released a beta version of the Visual Studio.NET integrated
development environment. Visual Studio.NET supports all languages supported by
earlier releases of Visual Studio - with the notable exception of Java. In its place, the IDE
supports C#, Microsoft’s new object-oriented programming language, which bears a
remarkable resemblance to Java. Visual Studio.NET has some interesting productivity
features including Web Forms, a web-based version of Win Forms, .NET’s GUI
component set. Visual Studio.NET enables developers to take advantage of .NET’s
support for cross-language inheritance.
Our conclusion is that Microsoft has the clear win when it comes to tools. While the
functionality of the toolset provided by J2EE community as a whole supercedes the
functionality of the tools provided by Microsoft, these tools are not 100% interoperable,
because they do not originate from a single vendor. Much more low-level hacking is
required to achieve business goals when working with a mixed toolkit, and no single tool
is the clear choice, nor does any single tool compare with what Microsoft offers in Visual
Studio.NET. Microsoft's single-vendor integration, the ease-of-use, and the super-cool
wizards are awesome to have when building web services.
6.12 System Cost:
A wide variety of implementations based on J2EE architecture are available for purchase,
with price points varying dramatically, enabling a corporation to choose the platform that
meets its budget and desired service level. Costs are typically in the single-digit
thousands of dollars per processor, although there are higher-end implementations and
lower-end ones. Microsoft had not released pricing information for the .NET platform.
As far as hardware, J2EE supports UNIX and Mainframe systems, while both J2EE and
.NET support the Win32 platform, which is generally the less expensive alternative.
There is a level playing field for hardware costs, and the hardware cost debate becomes a
moot point. The takeaway point is that you can get low-cost solutions with both
Microsoft and J2EE architecture.
Microsoft's solution has an aggressive price, whereas J2EE architecture allows you
choose your service level. For example, with J2EE you can have a high-end, expensive
solution (iPlanet running on Sun Solaris in an E-10000 server), or a low-end, inexpensive
solution (jBoss running on Linux on a Cobalt RAQ server). There's also an assortment of
free and/or open source tools and services that support Java and XML. It should be noted
41
that you pay for what you get, and most organizations will not go for this low-end
solution, but rather will embrace a midrange solution as a happy medium.
The price of the platform is always a drop in the bucket compared to the total cost of the
project. This is defined as the price of the server platform, the cost to train developers, the
cost to build and evolve a solution on that platform, the cost to maintain the solution, and
any business opportunity costs from picking the 'wrong' platform.
It is recommended to not consider the price of the platform when selecting between
J2EE, .NET, or any other platform, but rather consider the more important other factors.
6.13 Performance:
A platform performs if it yields an acceptable response time under a specified user load.
The definition of what is 'acceptable' changes for each business problem. To achieve
acceptable performance, it is important that the underlying web services infrastructure
empowers you to build high-performing systems.
The primary bottleneck when building web services is usually integration with back-end
database systems. The reason for this is that most enterprise applications are data-driven
systems with much more data logic than business logic. Given that the database is usually
the bottleneck, any possible tactics for reducing database load will result in a significant
wins. J2EE reduces database traffic through two tactics:
 Stateful business processes allow you to maintain business process state in
memory, rather than writing that state out to the database on each request.
 Long-term caching (provided by some implementations) allow for database data
to be cached for long periods of time, rather than re-reading database data upon
each request.
It should be noted that both maintaining business state in-memory and caching must be
used with caution, and may result in problems if developers are not properly trained on
when to (and when not to) use these features. This is a fundamental difference between
the J2EE and .NET approaches to building web services: J2EE's advantage is that it gives
programmers more control over lower-level services such as state management and
caching. Well-educated developers can tap into these features to improve the quality of
their deployment. But it is of vital importance that developers are properly educated on
when to make these tradeoff decisions, or error may be introduced into systems.
By way of comparison, Microsoft.NET does not offer these tactics for improving
performance. There are no opportunities for performance wins, but at the same time,
there are no opportunities for developers to introduce errors into systems. When trying to
choose between whether these features are important for your organization, consider the
quality of your developers. If they are well-educated and do not require much handholding, then they will likely find the flexibility and performance gains from a J2EE
system as valuable. If your developers require more hand-holding, then the Microsoft
approach is clearly superior.
42
6.14 Scalability:
Scalability is essential when growing a web services deployment over time, because one
can never predict how new business goals might impact user traffic. A platform is scalable
if an increase in hardware resources results in a corresponding linear increase in supported user
load while maintaining the same response time.
By this definition, the underlying hardware (Win32, UNIX, or Mainframe) is irrelevant when it
comes to scalability, because both J2EE and .NET allow one to add additional machines to
increase user load while maintaining the same response time. The major implementations based
on J2EE architecture, as well as .NET, provide load-balancing technology that enables a cluster
of machines to collaborate and service user load that scales over time.
The significant difference between J2EE and .NET scalability is that since .NET supports
Win32 only, a greater number of machines are needed than a comparable J2EE
deployment due to processor limitations. This multitude of machines may be difficult for
organizations to maintain.
7. Conclusion:
Arguments supporting both platforms:
 Regardless of which platform is chosen, new developers will need to be trained (Java
training for J2EE, OO training for .NET).
 One can build web services today using both platforms
 Both platforms offer a low system cost, such as jBoss/Linux/Cobalt for J2EE, or
Windows/Win32 hardware for .NET.
 Both platforms offer a single-vendor solution.
 The scalability of both solutions are theoretically unlimited.
Arguments for .NET and against J2EE
 .NET has Microsoft's A-team marketing it
 .NET released their web services story before J2EE did, and thus has some mind-share
 .NET has a better story for shared context today than J2EE
 .NET has an awesome tool story with Visual Studio.NET
 .NET has a simpler programming model, enabling rank-and-file developers to be
productive.
 .NET gives language neutrality when developing new eBusiness applications, whereas
J2EE makes you treat other languages as separate applications
 .NET benefits from being strongly interweaved with the underlying operating system
Arguments for J2EE and against .NET
 J2EE is being marketed by an entire industry
 J2EE is a proven platform, with a few new web services APIs. .NET is a rewrite and
introduces risk as with any first-generation technology.
 Only J2EE lets you deploy web services today.
 Existing J2EE code will translate into a J2EE web services system without major
rewrites. Not true for Windows DNA code ported to .NET.
 .NET web services are not interoperable with current industry standards. Their BizTalk
framework has proprietary SOAP extensions and does not support ebXML.
43






J2EE is a more advanced programming model, appropriate for well-trained developers
who want to build more advanced object models and take advantage of performance
features.
J2EE lets you take advantage of existing hardware you may have.
J2EE gives you platform neutrality, including Windows. You also get good (but not free)
portability. This isolates you from heterogeneous deployment environments.
J2EE has a better legacy integration story through the Java Connector Architecture (JCA)
J2EE lets you use any operating system you prefer, such as Windows, UNIX, or
mainframe. Developers can use the environment they are most productive in.
J2EE allows using Java, which is better than C# due to market-share and maturity.
44