Sencha Complete?

I like Ext JS – the JavaScript framework by Sencha. But does it mean that our enterprise clients will be willing to pay $21K for 10 licenses of the recently released Sencha Complete: Team? It’ll be a hard sell for Sencha that plays in the field where all competing frameworks are free.

Such a hefty price tag may limit the exposure of Ext JS to only those enterprise shops that must use software products that are backed by their vendors and are commercially supported (for extra money, of course). Interestingly enough, Sencha even restricts the access to the evaluation copy of Sencha Complete. You have to have a team of 10 developers to request evaluation copy of this product. How many projects have you seen that had 10 JavaScript developers? Not many, right? It seems that Sencha Complete is meant only for the large enterprises where architecture groups approve Ext JS and Touch as THE framework to use.

I understand where this pricing is coming from though. Sencha as a company has started with some serious financial investments. If I’m not mistaken, more than $50 million were poured into the company over a couple of rounds of financing. Having this pile of cash is great for any software product, and Sencha’s engineers have proven that they can deliver. But there are time to scatter stones and there times to gather them. I guess, these venture capitalists what to see their money grow.

I still remember these expensive IDEs from the 90th, which were priced at $2K a pop. Where are they? I still remember Adobe’s LiveCycle Data Services (LCDS) with the extraorbitant license prices that was not able to compete with Adobe’s own open sourced version of this product (BlazeDS). WHere is LCDS now? Do you also see what I see?

As I said, I like Ext JS framework (hopefully it’ll lose some weight in the future versions), and I like Sencha Touch for developing mobile applications. I wish Sencha’s salesmen to be convincing in selling the licenses of Sencha Complete: Team. Our company offers consulting services in development of enterprise Web applications, and Ext JS is one of our frameworks of choice. And the last thing I want is to see the market share of Sencha is diminishing because of the careless pricing policy.

Update: I hope that this blog has contributed to Sencha decision to lower the prices. As of February 2013, you can purchase a one-developer license of Sencha Complete for $995.

Time Synchronization in Layman’s Terms

This morning I was preparing a breakfast for myself, and blogging was not in my plans. But as the saying goes, “If you want to make God laugh tell him about your plans”.

The time difference in internal clocks between the client and the remote server computer is a well known issue that software developers have to deal with in the real-time applications.

Consider traders placing orders to purchase stocks or currencies. The number of transactions per second is huge and the prices are rapidly changing. If a trader placed an order to buy 100 shares of MSFT at 10:25:33AM this doesn’t mean that the server will mark this transaction with exactly the same time. I’m not even talking about network congestions and latency issues. The issue can be caused by a simple reason – the clocks in the client and server computers are off by a second or two. Some time ago we had to send a special ping on the protocol level to calculate the difference in times.

Why do I write about it on Sunday morning when stock exchanges are closed? I was boiling eggs for breakfast. My wife always compliments me on how can I always guess the time needed to prepare soft boiled eggs. The secret is simple – just keep the eggs boiling for 5 minutes. That’s all there is to it.

When I dropped the eggs into the boiling water the microwave clock showed 9:53AM. Then I started working on my notebook, and when I checked the time again it was 9:57AM. Strange. It feels a little too soon. Time flies. But then I realized that it was my notebook clock that showed me 9:57AM, while the microwave displayed 9:55AM. The time synchronization issue in action!

The lesson learned: when you boil eggs check the time using the same clock to avoid time synchronization issues and overcooking eggs. This will make your spouse happy too. Enjoy the rest of your Sunday!

The Framework Coder on the Tractor

My previous post “The Degradation of Java Developers” sparked several interesting discussions. One of the major topics was if today’s developer has to know what’s going on under the hood of a particular framework. To be more specific, if Hibernate, a popular object-relational framework, can hide from your how the database objects are being created or manipulated, why learn SQL? One reader stated, “First of all, Hibernate (JPA, actually) is a step forward since it reduces most of the boilerplate SQL of the obvious kind. In applications with around 100 tables in the SQL database it is not challenging to explicitly write data access objects by hand.”

I can agree with this to some extent, especially when we talk about such mature and stable framework as Hibernate. But this framework was created to spare the programmer from writing tons of mandane SQL and JDBC code. Hibernate might help you here, but it’s hard to imagine that if the storage consists of 100 database tables no queries created by Hibernate have to be fine-tuned and optimized. In such cases if a person who uses Hibernate doesn’t know SQL – it turns him into a useless team member.

About two months ago I was making my usual morning promenade along the beach. Every morning a couple of tractors are moving back and force leveling the beach surface destroying the sand castles and burying butts and seaweed. All of a sudden, one of the tractor’s wheels got stuck in the sand.

The driver started angrily pushing the pedal or whatever else there is to push, making the tractor move back and forth slowly but surely getting deeper and deeper into the sand. When the tractor’s belly was literally laying on the sand, the driver realized that he won’t be able to get the vehicle out of the sand himself.

I was observing the entire show from the beginning of submerging till the moment he started to call for help using his cell phone. This is when I took the picture. What struck me the most was that during all this time the driver didn’t even bother to step down from the tractor to do anything manually to prevent the submerging. He didn’t bother and he was not trained for these kinds of situations. I assume he was told to call the office in case of any extraordinary situations. Houston, we got a problem!

Do you see the analogy with a framework coder who doesn’t know how things work under the hood? I clearly do. I also know that among the tractor drivers that are working on that beach there are people who know how to fix these situations without calling for a tow truck.

On the same note, each team of programmers includes a person who knows how to fix everything starting from fine tuning SQL all the way to fixing broken builds or writing manual piece of code that performs better than a framework.

Some developers who use open source frameworks know that if there is a bug in the framework or some feature doesn’t exist they file the bug or request for improvement with the vendor and then happily report to their managers that we have to wait till the vendor will fix it. But there are people who understand the words “open source” literally. Yep, they open the sources, read the code, subclass the problematic classes and make the fixes on their own.

The question is if IT managers understand and promote those people who are not afraid to roll out the sleeves. It helps if the software developers know how to manage the manager. But this is a topic for another blog.

P.S. Replacing SQL with a 500-page long JPA spec “to make my life easier” is not a good idea unless you really need various types of data storage. In 99% of the today’s enterprise applications it’s not needed. But my kudos to the Sun/Oracle tandem for brainwashing millions of Java developers into believing that learning JPA is better than learning SQL.

The Degradation of Java Developers

On multiple occasions I was blogging about these legions of enterprise Java developers trained to use certain frameworks without understanding how things work under the hood. This morning I had chance to see it one more time after interviewing three job applicants in a row.

Our consulting company got a request for a well rounded Java developer with the knowledge of SQL. We have good reputation with this client, so I started screening the candidates, which I got from a recruiting agency.

First, about the resumes – each has several pages with detailed description of their work for various employers. Each resume had a list of technologies that the candidate supposedly know. Here’s the list of technical skills from a real resume:

Core Java, J2EE, JSP, JDBC, Servlets, AJAX, XML, HTML, XSLT, Web Services, CSS, JavaScript, SQL, Oracle 10g, MySQL 5.0., JMS,Eclipse, Adobe Flex Builder 3.x,UML, JDBC, SVN, JUnit, VSS, Jira, HTML, DHTML, CSS, AJAX, JavaScript, XML, MXML, Action Script, Servlet, JSP, JSTL, Hibernate 3.x, Spring 2.x, IBatis, SOAP, UDDI, WSDL, Apache Axis, Web logic Server 8.x, Apache Tomcat 5.0, Struts Framework, MVC, ANT, Maven.

Looks impressive… for those who haven’t been interviewing Java developers. I don’t want to say that this candidate is lying, but he wasn’t able to maintain a conversation about 80% of these technologies for more than 3 minutes. They’ve heard or even tried working with these technologies or tools, which is all that’s needed for adding them to the resume. What are the remaining 20% they can talk about? The frameworks. Most likely they will explain how to configure Struts or Spring, and even how to make Spring talk to Hibernate. BTW, they all love Hibernate cause it spares them from writing SQL, speaking of which, they know very little about this query language.

When I see all these Struts, Springs, and Hibernates on the resume I start with this, “Imagine, that you’re not allowed to use any frameworks. Explain in details the entire process of bringing the data from DB tables Customers and Orders to the Web page”. For most people it’s a killer proposition let alone writing some SQL queries…

One person had JQuery on the resume. I asked her, “Why did you use jQuery”…20 sec pause…”I like it, it’s nice!” That all I could pull out from her on the subject.

Two weeks ago I’ve attended a technical keynote at JavaOne in San Francisco. Brian Goetz was showing code samples of Lambda Expressions (a.k.a. closures) that will be introduced to Java 8 next year. This is a pretty advanced feature and proposed Java syntax is not for the faint of heart. I was thinking to myself, “Who’s going to use these closures in the enterprise Java world? 10% of the developers? 5%?”. Are these expressions being introduced just for fun cause it’s cool and other functional languages have them?

Software development industry is changing. It doesn’t need hackers anymore. It needs craftsmen who can configure and replace blocks of code when something stops working. Ideally, you should have in your team one Java expert who can actually understand the code of your application and can fix it not on the block level, but can drill down to a single line of the Java code. Somehow such people also know how to write a SQL outer joins, how to fix the broken build, and whatever else may come up.

A typical enterprise manager wants to increase the population of his software developers. Managing more people is the shortest way for moving up the career ladder. It is what it is. But if you are smart enterprise manager, make sure that for each dozen of framework programmers you have at least one real.

I already received a new resume for tomorrow’s 10AM interview. The resume looks the same. The only lines I read are the names of the former employers and projects. Any other written information is useless – the real picture will start developing tomorrow at 10AM.

Tomorrow’s Update. It’s 10:15AM. Yet another interview is over. The fourth wrong answer was that to send the data to the browser a servlet has to add it as an attribute to the HTTPSession object. Do you think it would be rude to stop the interview after listening to such answers for 10 minutes?

The Day After Tomorrow’s Update.I’ve added $5 to the hourly rate offered for this position. The very first candidate passed my interview with flying colors. Never thought that a lousy five bucks can open the door to the wonderful world inhabited with intelligent Java developers!

Mobile vs Desktop Web Usage

It doesn’t take a rocket scientist to figure out that a substantial portion of the world population is using mobile devices to access Web. For IT managers this means that they have to allocate money for projects to develop mobile versions of their Web applications to avoid losing customers. But how many customers could you potentially lose? Let’s look at some numbers offered by the statcounter.com

Generating the graph for the Worldwide region shows that 12% of the Web usage is done via mobile devices. So if you are running global Internet operations this number represents the potential number of customers that you might lose unless your business is accessible from smartphones. This number is pretty impressive, isn’t it?

But what about businesses whose customers live in the USA, a technologically advanced country? Changing the region to USA shows that only 11% are accessing Web online. We are lagging behind. What about the leaders of the European Union? In both Germany and France only about 5.5% access WEB from smartphones. An infamous Greece has only 3% of mobile Web users. China shows 5.7%, Israel – 5.5%.

So who should be heavily investing into development of the mobile solutions? I’ll tell you in a minute. If your customers live in India, you must immediately start moving your Web apps to the mobile space: 53% of Indians are Web surfing from the mobile devices vs. 47% that are still using desktops. Surprised? Turkmenistan show the same numbers. In Zimbabwe 48% browse Web from mobile phones.

Conclusion. Some countries with poor economies have missed the PC revolution, but they are trying to catch up in the mobile space. Unfortunately, the chances are slim that losing them as customers will harm your business. So get the statistics for your region of interest while working on the IT budget for the next fiscal year. But keep in mind, that 10% is a pretty substantial number already, and it’ll only grow.

Categories Web

My Three Days at JavaOne 2012

After spending three days at JavaOne I’m happy to report that Java remains the most stable and reliable platform.There are some new additions to the language and the JVM that will make Java more complicated. I’m talking about Nashorn, Jigsaw, Lambda, and Modular Java. I’ve attended 10 presentations and participated in three hands-on labs. My notes are below.

JavaFX

JavaFX is a library and a tool set for creating rich UI for desktop and embedding UI into chips of various devices. It’s not meant to be used for creation of rich Internet applications. The user interface is defined in the .fxml files. It’s standard xml with some import statements.
The Scene Builder tool allows you to drag and drop UI controls and CSS onto the scene. It uses regular CSS3 so Java developers better start learning it. The processing logic is written in Java with some additional API. You can package JavaFX code into .exe and .dmg installers.
Each .fxml file has a corresponding controller Java class that lists handlers for the events and other code. It seems that development of the new features of JavaFX is going slow – addition of the ComboBox control is a modest achievement. Still, developers show interest to JavaFX and the session I’ve attended had about 200 people in the room.

Nashorn

This is a new JavaScript engine that will serve as a replacement of Rhino. You’ll be able to run JavaScript either from a command line or directly from your Java code. I’ve heard that the Nashorn engine is about 20 times faster than Rhino and is almost as fast as Google’s V8. Oracle gives Nashorn to Open JDK.

After looking at some code examples, I can assure you that the knowledge of JavaScript is a must. Nashorn allows you to create two types of the Molotov cocktail. A simple recipe for such cocktail is to write JavaScript on the left side of the equal sign and Java on the right. A more sophisticated recipe is to write JavaFX code and insert a block of JavaScript right in the middle without making any special warnings or annotations in the code. Some people can consume such cocktails, but the majority of today’s enterprise programmers will get hangover.

The Modular Java Platform

This project gives me goosebumps even though the goal is noble. For the last 17 years Java carried over the dead (a.k.a. deprecated) code from version to version. It gave stability and backward compatibility of the code. But the size of the JRE remained pretty big – 15Mb or so. Besides, your application may not even need all these jars that come with JRE. The modular Java Platform should simplify deployment to small devices, improve the download and startup time, eliminate the CLASSPATH (?!), and auto download and install on demand whatever modules are needed for your application. The project Jigsaw will become a reference implementation of the Modular Platform JSR.

The modular Java should solve the “JAR Hell” packaging problem. Instead of packaging JARS you should be able to group Java packages into modules and libraries. The new keywords will be introduced: module requires, provides, and more. The meaning of the keyword public will change. The public scope means “within the module” unless you export some classes to expose them to the external modules.

Modules could be packaged into libraries. The library dependencies are supposed to be resolved automatically (keeping my fingers crossed).

I realize that modularization of Java is extremely complicated task, and (the good news) it won’t be complete till Java 9. But Java developers may want to start sifting through the code of their applications to ensure that they use only the published API. But if you hacked JDK and used some internals, this code will break after deploying the modular Java platform in your organization. Consider looking for a new job unless you are searching for new challenges.

HTML5 Client and NetBeans

HTML5 is a buzzword for DHTML – HTML+JavaScript+CSS. Such front end in Web applications exchanges data with Java EE objects using JSON, and in the Java world you should be using JAX-RS and the Jersey framework. After attending several HTML5 presentations it seems that Java developers are eager to learn, but not overly familiar with this domain. NetBeans 7.3 comes with a project Easel that works with HTML5, and I’ve seen a demonstration of how to debug JavaScript inside NetBeans. I’m not exactly sure why is this needed since all modern browsers have their own debuggers, and recommendation to connect the IDE to the browser just for debugging purposes is questionable.

WebSockets – JSON – REST

I was glad to see how the right architecture of Web application was being promoted. Java servers should not be responsible for anything related to the UI in the Web browser. Java servlets, JSP or JSF should not mess with HTML at all. JavaScript on the front end consume JSON prepared by a REST service, which in Java EE world would be done by the JAX-RS rules. HTML and CSS are responsible for the UI layout. Several different sessions were preaching to this architecture. HTML5 includes the WebSockets API, which is a powerful alternative to the HTTP traffic. Next year’s release of Java EE 7 specification will publish a standard for processing JSON and using WebSockets in Java.

The final release of the JAX-RS Processing (JSR 353) is scheduled for April 2013. It’ll support the low-level Streaming API (similar to StAX’s XMLStreamReader) as well as high-level Object Model API. The streaming api will dispatch events: start streaming, key name, value, start array et al. Currently, the JSON-P’s JSonBuilder is too verbose, but allows programmers to control the way each piece of data is added to JSON. The future Jason-B (for binding) spec will offer a simple way of turning a Java object to a JSON string similar to what Google’s GSON library does. But the Jason-B spec won’t make it into Java EE 7 – use the version developed by EclipseLink.

A senior Java Developer attends an in-depth presentation on WebSockets by Justin Lee 

Labs

Imagine that you need to teach a hands-on class in the classroom with 100 attendees. Being an instructor myself I can assure you that it’s an extremely challenging task. I’ve attended three such labs. Each of the hundred laptops in the classroom had a pre-installed VM with the PDF describing the steps to be completed and supporting files. In such a setup the most important piece is well written document with instructions. Such manuals were great in two out of three classes I’ve attended, and I applaud these instructors. The third class was not prepared that well. The instructor simply said in the beginning, “This is a self-paced course. Just follow the instructions and let us know if you need any help”. Not even a 5-minute intro. Nothing. The first part required installing a number of software packages, and several installation instructions were simply missing. Attendees were helping each other explaining how they figured out what software was missing and the installation instructions were not provided. I left this class after playing catch for 20 minutes. Still, I’m grateful that Oracle offers such labs, which gave a jump start in learning new technologies to hundreds people.

Demo crashes

I’ve seen a fair amount of live demos that crashed. It happens, especially when you are presenting on a beta quality software. The audience usually takes these crashes with understanding – we all are sitting in the same boat. But I’d like to say that there are presenters and there are rock star presenters. I’d like to mention here a name of a really great presenter – James Ward from Heroku. I know James for years. This guy lives and breathes software. When he presents – everything usually works. If something breaks, James knows and explains why it broke and how to fix it. This time I’ve attended his excellent presentation about the Play 2 framework – give it a serious consideration if you’re in the process of picking a framework for your Web application. Besides being a great presenter, no one can beat James in the amount of the information James can produce per second. He’ll be presenting at the Java SIG in New York in October – be there if you’re in town.

Wasting time at JavaOne presentations

This time I’ve seen a new way of wasting time at the presentations. Conference attendees learned the hard way that promised presentation materials may remain promises. They help themselves by taking pictures of the presentation slides using mobile phones. But this time I’ve seen a guy who was taking photos with his iPad, and after taking a snapshot he’d immediately edit it using some application installed on the iPad. There is no way that he could concentrate on what the speaker had to say. Was he even a Java programmer or was sent to take pictures for his boss? The funniest part was that the entire slide deck of this presentation was already uploaded to the JavaOne’s site. My kudos to Oracle for trying to make the presentation materials quickly available to the public. Go to JavaOne 2012 Videos and select the menu Tools | Content Catalog. Lots of slide decks are already there, and in some cases you may even find the video recordings too.

Data Collections

I’ve attended a presentation on data collections. Believe it or not, but I’ve seen a person who knew the difference between dozens of Java collections. I’m not kidding. I’ve also learned that in addition to tons of JDK collections, there were a couple of more libraries: Guava collections by Google and collections developed by … Goldman Sachs. That’s right, the IT departments of this respected financial firm are known for creating proprietary general purpose frameworks and libraries.

Parties

Finally, my thanks to the GlassFish, Oracle Community leaders and third-party vendors who poured beer and whiskey into my glass – I’ve attended 6 parties in 3 days, where met a number of interesting people who love Java dearly. Those who attended JavaOne in the old days remember that was the private party by Tangosol was the most popular. I guess, this was the reason why Oracle acquired Tangosol five years ago. This year a vendor named ZeroTurnaround had a party, which can pick up where the Tangosol left off. The beer and wine are the same at each of these events, but this was an invitation-only party and many well known people were there. I had to take a red eye home, and gave away my ticket to a free concert by Perl Jam.

The Epilogue

It was a rather long blog – sorry for taking your time. Those who are not tired can go to http://www.oracle.com/us/corporate/press/1854982, where Oracle published the roadmaps for Java SE and JavaFX. Thank you Oracle for running JavaOne. I hope to come back next year. Thank you for keeping Java the most stable and reliable platform for professional application developers. Long live Java! See you in November in Antwerp, where I’ll be presenting on JavaScript for Java Developers at Devoxx.

JavaOne 2012: The Day 1 Keynotes

Disclaimer. This blog is not an attempt to list all news and announcements that made at JavaOne 2012 – you can find plenty of transcripts online. It’s a very subjective (a.k.a. not objective) and opinionated representation of what I feel being here today. The morning after I may feel differently.

JavaOne is the second largest conference for Java developers and is almost as big as European Devoxx. I don’t have any official numbers, but it seems that JavaOne 2012 attracted about 2500 people from around the world.

Do you remember those huge screens, surround sound, creatively decorated stages, amazing sound effects, and Java star personalities on stage? Fuggedaboudit! Small stage. Three modest screens with slide shows. Slow start. The keynote consisted from three parts – Strategy, IBM-the-diamond-sponsor, and Technical.

The first part was delivered by unknown Oracle employees, which was big mistake IMO. The conference should have started with generating some excitement. I didn’t expect to see Steve Jobs caliber presentations, but at the very least the conference should have been opened by the recognizable people (is Larry Ellison too busy to record an address to the Java crowd?). I understand that the Java strategy presenters are not professionally trained actors, but saying the word “wow” in a tone as if someone died is a flaw. Dr. Ballard who discovered Titanic delivered the talk that demonstrated how to talk the talk. You may say, and rightly so, that James Gosling left Oracle and Joshua Bloch with Neal Gafter are not allowed to speak at JavaOne. But there were lots of excellent engineers that I’d like to see first.

Whose idea was to have Cameron Purdy to wear a suit? He’s an great presenter with an excellent sense of humor. Later in the evening, I met Cameron at the party where he looked and talked as expected.

The second part of the keynote was given to a diamond sponsor IBM, and I was prepared to hear some marketing spiel. I was wrong – IBM fiercely competes with Oracle in the Java space, and their keynote was a lot more technical, interesting and well presented than the first one.

Finally, the third keynote was technical with the right people. These people should have opened the JavaOne. Brian Goetz and Arun Gupta can deliver the message well. But why there were no applauds when Brian’s appearance was announced? Do people not know that he’s the man behind Java concurrency?

Now, let’s imagine that I’m a creature from some other civilization sent to the planet earth to see what are these humans are up to. After attending this keynote I’d report to my bosses, “These Earth inhabitants don’t even have smart phones or tablets yet. They just have some microprocessors and their main strategy is to put Java in there.” I mean, c’mmon! What does it mean? I don’t have any insider’s information, but it seems that the Java strategists decided that there is no way that Java can compete on iOS and Android, so there is no reason to even waste time on trying. What’s not taken by these evil Google and Apple folks? Any devices? Let’s pour Java in them real quick.

I really hope that next year’s Java keynotes will be better prepared and delivered.

What I like about the keynotes? It seems that some presenters were allowed to move that scary legal Oracle’s slide to the end of the presentation.

One of the attendees approached me and said, “I don’t remember your name, but I see you all over the Internet. I like reading your sarcastic blogs.” I don’t know the name of this person either, but this blog shouldn’t disappoint him, should it?

Pants On? Then Post it!

This is one of the topics that I keep coming back to over and over again. It’s about how young kids ruin their careers by posting something stupid online. These days employers routinely make quick Google searches by the job applicant’s name and in many cases quietly throw their resumes in the shredder. They won’t write them back explaining why they did it, and they don’t have to after seeing your drunk smily face with your pants down.

Since the young generation has difficulties reading anything longer than 140 characters, the number of ways to pass the message across is limited. Using infographic might work with your teenager of the undergrad student. I’d like to bring your attention to the nice infographic titled “Should I post this?” If you don’t like reading, just go straight to the picture.

Enlarge this diagram and post it on your teen’s wall.

Think out of the box

Just came back from a dinner with my business partners hosted by Anatole. When the dinner was almost over he said, “Man, I forgot to put the red caviar on the table”. Red caviar is also known as salmon roe.


I said, “OK, let’s get some, but we need bread and butter”. After that I went on talking about that good tasting Amish butter I’ve enjoyed last month in Pennsylvania. Anatole replied, “It’s easy, I’ll make you a good butter in two minutes.” Then he poured some heavy cream in a cup and turned on the blender.


Two minutes later we’ve enjoyed the butter better than the one I bought at the Amish market.

I always knew that Anatole thinks out of the box, but not to this extent!

What Makes a Web Application Enterprisey?

We’re starting writing a book for O’Reilly that’s titled “Enterprise Web Applications: From DeskTop to Mobile”.  The book will be available under Creative Commons license, which means you can read it and provide your feedback from the get go. Here’s the github repository where we’ll keep the current version of the book. In the morning we had a discussion about the meaning of the word Enterprise applied to Web applications. Below is the draft we came up with and we ask your input – would you agree or have a different understanding of the meaning of the term “Enterprise Web Application”.

The easiest way to do this is by example. Creating a Web application that will place process orders is not the same as creating a Web site to publish blogs. Enterprise applications include company specific workflows, might need to be integrated with number of internal systems, data sources and processes.

Google Doc would not be enterprise Web application. But Google appliance integrating search operating on company documents, databases, processes, tickets, and providing collaboration is – it integrates consumer/workforce front office with what the company does (back office).

Google Maps is not an enterprise application. But a Google map integrated within the company site used by insurance agents to plan daily route, scheduling, doing address verification and geocoding – can be considered and enterprise application.

Just using a Web application for business doesn’t make it an enterprise Web application. If you take Gmail as is, it won’t be an enterprise application until you integrate it into another process of your business.

Is an online game an enterprise application? It depends on the game. A multi-player online roulette game hooked up to a payment system, and maintaining users’ accounts is an enterprise Web application. But playing Sudoku online doesn’t look too enterprisey.

How about a dating Web site? If the site just offers an ability to display singles it’s more of a publishing site as there is not much of a business there. Can you turn a dating Web site into an enterprise application? It’s possible.

Some people will argue that an enterprise application must supports multiple user, high load, be scalable, have business and persistence layers, offer professional support et al. We don’t believe that a Web application should do all this to become qualify for the adjective enterprise.

Let’s keep the definition simple.

An enterprise Web application is the one that helps an organization running its business online

In this book we are going to build a Save the Child Web application that will allow people to register, donate, find local kids that need help, match donors and recipients, upload images, videos and display statistics. Would these feature make Save the Child an enterprise Web application? Yes, our definition does not require an organization to be profitable. Our non-for-profit organization that collects donations for ill kids is our enterprise.

Categories Web