YOUR FEEDBACK
Optimizing Database Performance in J2EE Applications
kasiazaki wrote: dfdf


2007 West
GOLD SPONSORS:
Active Endpoints
Your SOA Needs BPEL for Orchestration
BEA
Virtualized SOA: Adaptive Infrastructure for Demanding Applications
Nexaweb
Overcoming Bandwidth Challenges with Nexaweb
TIBCO
What is Service Virtualization?
SILVER SPONSORS:
WSO2
Using Web Services Technologies and FOSS Solutions
Click For 2007 East
Event Webcasts

2008 East
PLATINUM SPONSORS:
Appcelerator
Think Fast: Accelerate AJAX Development with Appcelerator
GOLD SPONSORS:
DreamFace Interactive
The Ultimate Framework for Creating Personalized Web 2.0 Mashups
ICEsoft
AJAX and Social Computing for the Enterprise
Kaazing
Enterprise Comet: Real–Time, Real–Time, or Real–Time Web 2.0?
Nexaweb
Now Playing: Desktop Apps in the Browser!
Sun
jMaki as an AJAX Mashup Framework
POWER PANELS:
The Business Value
of RIAs
What Lies Beyond AJAX?
KEYNOTES:
Douglas Crockford
Can We Fix the Web?
Anthony Franco
2008: The Year of the RIA
Click For 2007 Event Webcasts
SYS-CON.TV
TOP THREE LINKS YOU MUST CLICK ON


Bringing RIAs into the Enterprise: New Challenges, New Solutions
Challenges to developing AJAX applications in the enterprise environment

Digg This!

Page 2 of 4   « previous page   next page »

There are two reasons:
1.  Startup applications are, by definition, new, or "green-field," projects: there are no old internal databases, code, infrastructure, business rules, or data center rules to deal with. In this regard, building a new app is playing tennis without a net, compared to the challenging game of enterprise development.
2.  The life cycle of startup code is measured in weeks or months, rather than years. Large parts of the application are rebuilt on a regular basis to add new features. If the company does so well that the code is running five years hence and starts getting crufty or unmaintainable, that means the early developers are doing pretty well. So the early developers don't worry so much about the long term.

In enterprise scenarios, few projects are fully "green-field." If a new project is valuable enough to execute, it's gaining some of that value from existing business data and systems. Examples include projects to provide new access to existing customer records, or a better way to process an existing transaction.

In addition, enterprise code will be around for a long time - typically 2-5 years and occasionally as long as decades. Over that time, maintainability is critical, as is resilience in the face of restructuring and staff turnover, compliance with changing regulations, and adherence to business continuity planning rules.

If you spend a good part of your career at a large company, you may be the one paying the price in the future for a poor technology design today. Think about those utility scripts you write day-to-day: the idea of building and maintaining a mission-critical business application with those kinds of scripting languages should make you nervous.

Remember how easy Visual Basic was for those first apps in the early '90s...and how difficult it became to modify and maintain those apps in production years later? And those data-access samples in the magazines look so easy...but the authors don't know that your company's "Customers" table is split across two legacy databases and a mainframe.

As an enterprise developer, you have different and longer-term concerns.

Issues Facing Enterprise Development with AJAX Technologies
A number of characteristics of AJAX technologies create tricky - or at least thought-provoking questions - when we bring them into the enterprise.

Some of the popular languages and runtime options are young and still evolving quickly. There are hundreds of AJAX toolkits in use today. Only a few of these will still be in wide use in several years. Even the most popular libraries are adding features and fixing problems at a prodigious pace. While this is a great sign of their vitality, it means there's a new version every few months.

There is also reason for concern over running interpreted scripts as production software, whether in the browser or on the server. While scripting environments are used successfully - and power some of the most successful applications on the Web today - transitioning from a traditional code-compile-link-deploy-test methodology may be challenging for your software organization.

Because there is no compile/link step, you'll only find problems when your code hits them; you'll find missing dependencies when they break the app at runtime. We'll look at approaches to mitigating these issues. It also doesn't help that software teams using scripts extensively as "duct tape and baling wire" may have developed scripting habits that are not suitable for production code.

Next, we see that the languages are fundamentally different from what enterprise developers typically use. JavaScript, for example, is at its core a functional programming language, where functions, with their closures, are the fundamental construct in the language and serve to control scope boundaries. JavaScript, and other scripting languages such as Ruby, are also dynamic. This means that significant parts of the program code may be generated at runtime based on external data or the branch path an application takes. Metaprogramming - programs writing themselves or other programs - is fairly common in these languages and, even if you don't use these techniques, you are likely to encounter libraries that do so.

As we've said, enterprise applications are also less likely to be green-field projects. What does that mean for AJAX development?

For one thing, test-driven-development techniques, a cornerstone of building solid code with dynamic platforms, become trickier. Since enterprise apps often span many systems, it is harder to assemble a full test system that can be manipulated by automated testing. The data in the test systems may not be complete, or may be encumbered by privacy issues. The test systems may be formally controlled or resource constrained so that continuous testing may not be allowed. Proper testing of gateways from partner companies may be hard or impossible. And, since real-world legacy data is not all clean and up to date, you need test data sets that cover these dirty or incomplete-record scenarios as well.

If your application needs to access existing non-HTTP-based network resources, you will need to do some special planning. Pure AJAX is restricted to HTTP; if you need another TCP protocol, or UDP, you'll have to plan on deploying to a plug-in environment in the browser or using a proxy on the server side.

The overhead of deploying additional server applications just to serve as proxies to other systems (a common AJAX technique) could be considerable in the enterprise. And, finally, your data access layer needs to be both compatible with your legacy schemas (something not handled equally well by all of the popular frameworks) and compatible with the rules and leanings of your DBAs.

Adapting to the Challenge Wrangling Platform Versions
There are two basic approaches to dealing with version changes: controlling the version in use where possible, and leveraging abstraction layers to hide version differences. I recommend using both techniques as much as possible.

On the server, you have control of all of your library versions (including JavaScript that is served to run in the client), and many of your interpreter versions (e.g., Ruby or Python on the server, but not the JavaScript or Flash runtime in the browser). Think of the interpreter as a runtime library and consider deploying it together with your server app.

On the client, a key evaluation criterion for a JavaScript library should be its cross-browser, cross-platform abstraction capabilities. Your AJAX toolkit should handle the differences between Safari and Firefox, Mac OS and Windows, leaving you to focus on core UI and business logic. Because of the rapid evolution of AJAX toolkits, you may even want to consider a minimal abstraction layer of your own to mediate between your code and the underlying toolkit, to ease potential toolkit changes.



Page 2 of 4   « previous page   next page »

About Adam Breindel
Adam Breindel is a lead engineer at IndustryNext, responsible for architecture and delivery of RIAs. An early adopter of AJAX, he built an AJAX media library/player for startup Mediabolic in 2000. Adam has also tackled integration and mobile challenges, enabling web and mobile access to United Airlines' 40-year-old mainframe.

LATEST JAVA STORIES & POSTS
Rating JRuby, Jython, and Groovy on the Java Platform
Open source software, while not synonymous with Java, may often be seamlessly integrated with Java code to produce a versatile synthesis that makes developers' lives much easier. In recent years, developers have taken some open source dynamic languages, commonly referred to as 's
What Does the Future Hold for the Java Language?
Before Java I was a Smalltalk guy. I remember switching from one language to the other and the tipping point that you reach when you've mastered the new language and how many months it takes, not to mention the years, to do really good design and know-how, which patterns to apply
Adobe's Kevin Lynch and Microsoft's Scott Guthrie to Keynote AJAX World RIA Conference & Expo
Two of the biggest launches in Rich Internet Application history took place in 2007/2008 when Adobe launched AIR 1.0 in February '08 and Microsoft launched Silverlight (September '07). At the 6th International AJAXWorld RIA Conference & Expo in October SYS-CON Events is delighted
The Right Time for Real Time Java
Faced with the demands of mission-critical applications, many enterprise developers have pushed the Java language and the Java Virtual Machine (JVM) to the limit. The most common issue seen in transactional environments is achieving predictable response time or latency - in other
Cloud Computing - IBM's Got Its Head in the Clouds
Reminding people of how its backing was the making of Linux, IBM, to no one's surprise, has thrown its support behind cloud computing, that delicious nexus of every chi-chi buzzword technology currently in vogue: Web 2.0, rich Internet applications, software-as-a-service, SOA, gr
SA Forum Extends Reach of High Availability into the Java Community
The Service Availability Forum (SA Forum) announced the availability of its Release 5.1 Java Mapping specification. This enhanced specification provides a mapping of the Application Interface Specification (AIS) services to the Java language as well as an accompanying whitepaper
SUBSCRIBE TO THE WORLD'S MOST POWERFUL NEWSLETTERS
SUBSCRIBE TO OUR RSS FEEDS & GET YOUR SYS-CON NEWS LIVE!
Click to Add our RSS Feeds to the Service of Your Choice:
Google Reader or Homepage Add to My Yahoo! Subscribe with Bloglines Subscribe in NewsGator Online
myFeedster Add to My AOL Subscribe in Rojo Add 'Hugg' to Newsburst from CNET News.com Kinja Digest View Additional SYS-CON Feeds
Publish Your Article! Please send it to editorial(at)sys-con.com!

Advertise on this site! Contact advertising(at)sys-con.com! 201 802-3021


SYS-CON FEATURED WHITEPAPERS

SPONSORED BY INFRAGISTICS
SOA in a JVM: OSGi Service Platform - A Dynamic Component System for Java
There are many forces that influence technological evolution. After a decade of building enterprise
AJAX and Enterprise RIA Tools - JSF, Flex, and JavaFX
2008 is going to be an important year for Rich Internet Applications. Most organizations are deliver
Final Voting Phase on OpenAjax Browser Wishlist
The OpenAjax Alliance is developing an Ajax industry wishlist for future browsers, using a dedicated
AJAX World RIA Conference News - Netflix UI Guru To Present on Crafting Rich Web Interfaces
In every field of design one of the first things students do is learn from the work of others. They
Infragistics Releases CTP UI Components for Microsoft Silverlight Beta 2
Infragistics announced the availability of two Community Technology Preview (CTP) User Interface (UI
Yahoo User Interface 2.5.2 Released
The YUI development team has released version 2.5.2; you can download the new release from SourceFor
ADS BY GOOGLE
BREAKING JAVA NEWS
GSS Migration Toolkit for Sun Communications Suite Enables Migration from IBM Lotus Notes and Domino to Web 2.0 and SaaS
Global System Services Corporation (GSS) today announced the GSS Migration Toolkit for Sun J