Welcome!

Open Source Cloud Authors: Liz McMillan, Yeshim Deniz, Elizabeth White, Rajeev Kozhikkattuthodi, Pat Romanski

Related Topics: Open Source Cloud

Open Source Cloud: Article

AjaxWord: An Open Source Web Word Processor

AjaxWord: An Open Source Web Word Processor

AjaxWord (www.ajaxword.com) is an open source Web-based word processor. It closely mimics Microsoft Word in both look-and-feel and functionality. The application was initially written between 1997 and 1999 using JavaScript/DHTML on the client side with ASP on the server side. It was released on the Web in 2000. In 2005, the application's server-side logic was migrated to Java and released as open source code.

On the client side, the application looks and feels like a typical desktop application, e.g., Microsoft Word. The design features the kind of rich graphical user interface that Microsoft Word users are familiar with, such as hierarchical menus, toolbars, wizards, file dialogs, and a multiple document interface (MDI). (Figure 1)

On the server side, the application is a typical Java-based Web application. It features:

  • User authentication and authorization.
  • User-based file storage system. Once a user is logged in, he is assigned to a user-specific diretory. In this directory, he can create new files, save files, and create new directories. Users can't see or manipulate any server-side file system element beyond this user-specific directory.
  • Services to open server-side files and save files on the server side.
  • Services for a logged-on user to navigate his own directory structure.
From a network communication perspective, the application uses standard HTTP for sending requests and responses asynchronously. Requests/responses are sent and processed in the background without the user having to do full-page "click, wait and refresh."

The following is a list of high-level features offered by AjaxWord:

  • A hierarchical menu that provides file opening, file saving, editing, and formatting; (Figure 2)
  • File dialogs that users can use to navigate directory structure, open files, and save files (note: the file system is actually on the server side); (Figure 3)
  • A toolbar that provides a shortcut to formatting and file manipulation functions. (Figure 4)
A multiple document interface (MDI) that lets a user work on multiple documents at the same time in separate windows.

Document Templates and "New File" Wizard (Figure 5)
In many ways, AjaxWord exhibits the characteristics of AJAX applications:

  • The Web Page as the Application: AjaxWord's start page defines the initial application user interface and downloads a JavaScript-based AJAX engine as well as a significant portion of the application logic asynchronously. Once the initial page is loaded, the application is fully capable of interacting with the user without further server connectivity.
  • Servers Are for Data, Not Pages: Different from other Web applications, AjaxWord's server-side logic delivers data. Once the initial page finishes downloading, subsequent requests to server logic are requests for data.
  • Dynamic and Continuous User Experiences: On the one side, the application delivers a rich user interface and an asynchronous update similar to desktop software. On the other side, it's a native Web application that runs inside popular Web browsers without any installation requirement.
Technical Overview (Figure 6)
AjaxWord is a distributed application that has a client-side component and server-side component: the AjaxWord client and the AjaxWord server.

The AjaxWord client is written using JavaScript and HTML. It leverages an AJAX engine that contains a DHTML user interface toolkit and a way of doing asynchronous communications. The AjaxWord client also contains the application's client-side business logic.

The AjaxWord server is written as a Java Web application. It contains a Java servlet called "ControllerServlet." This servlet gets AjaxWord client requests and dispatches them to different modules for processing. The AjaxWord server handles the following requests:

  • Request to register a new user
  • Request to login a user
  • Request to list all the children of a particular directory
  • Request to open or save a file
All user data is stored in a database that is accessed via JDBC. User files are stored in the server-side file system as files. For deployment purposes, the AjaxWord server requires only a Java servlet engine.

Launching AjaxWord
AjaxWord is a complex application that requires a significant amount of code be downloaded to the client side. The code includes both the AJAX engine as well as application client logic. The application startup experience is an important factor in influencing user adoption that must be optimized.

Figure 7 shows how AjaxWord handles this. When the user launches the application, AjaxWord shows a loading page with a progress bar. In the background, it sends a request to the server to download the JavaScript files of the AJAX engine. When a file is downloaded, the progress bar is updated. After the AJAX engine finishes downloading, the application user interface is downloaded and displayed. In the meantime, requests are sent to the server in the background to download the application logic. When the application user interface is rendered, the application has been downloaded and is ready for user interaction.

Running AjaxWord
After AjaxWord is loaded, it's ready for user input. When a user event occurs, such as a mouse-click or a keyboard action, the event is sent to the application client logic for processing. If the event doesn't require server-side access, the application client logic will process it locally and update the user interface to display the result. A significant amount of events are handled in this way. Using local processing power and minimizing network round trips are reasons that AJAX applications can deliver better performance. (Figure 8)

If the event requires server-side resources, the application client-side logic will call the AJAX engine to send a request to the server in the background without freezing the user interface. The request will go to the server-side "ControllerServlet," which can route the request to different service modules for processing. The processing result will be sent back to the client as part of the response. The AJAX engine will get the response and return it to the application logic. The client logic will then process the response and update the user interface. While the server request is being processed, the user interface is still "live" and the user can still interact with the application. This "asynchronous" behavior is another reason why AJAX is attractive to developers and users.

Exiting AjaxWord (Figure 9)
Most Web applications don't require any special handling on the browser side to exit. If a session is inactive for a certain amount of time, the application is considered to have hit a "session time-out" and the server will terminate it automatically. Since most Web applications don't keep state on the client side, the client-side exit isn't a concern.

The situation can be different for AJAX applications. AJAX applications tend to keep state on the client side and so the client-side exit has to be handled. AjaxWord is a good example. When the user is closing the browser window, there may be unsaved documents on the client side. If the exit event isn't handled, the unsaved document will be lost.

When a user issues an exit command (by clicking the "close" button on the browser window to close the browser), the event is captured by AjaxWord's client logic. The client logic first determines whether there are any opened documents to be saved. If so, it will call the AJAX engine to save these documents to the server, then it will display a confirmation dialog asking the user to confirm the exit. If the user clicks "cancel," the exit event is ignored and the session will continue. If the user clicks "ok," the session will terminate and the browser window will be closed.


More Stories By Coach Wei

Coach Wei is founder and CEO of Yottaa, a web performance optimization company. He is also founder and Chairman of Nexaweb, an enterprise application modernization software company. Coding, running, magic, robot, big data, speed...are among his favorite list of things (not necessarily in that order. His coding capability is really at PowerPoint level right now). Caffeine, doing something entrepreneurial and getting out of sleeping are three reasons that he gets up in the morning and gets really excited.

Comments (2) View Comments

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.


Most Recent Comments
bijalvp 10/07/09 03:08:00 AM EDT

Great post. Thank you for sharing about what seems to be a great platform. Your website www.ajaxword.com is not accessible however so cannot get to the source code. Can you kindly tell me how to access this information and/or website?

Thanks again.

Bijal

arun_in_1980 11/01/08 05:09:44 AM EDT

Hi
i have gone through your site http://ajax.sys-con.com/node/345840 and found that ajaxword is a very good application.
as stated that www.ajaxword.com has all the necessary information and source code for this application, this site (www.ajaxword.com) is not working.

Please look into the matter and please give me some other link or other source to get source code of this application.

Given the listings of code at http://ajax.sys-con.com/node/345840 are not appropriate as they only give the technical overview of the application.

So please provide me the full source code so that i can take advantage of it.

Regards
[email protected]

@ThingsExpo Stories
Artificial intelligence, machine learning, neural networks. We’re in the midst of a wave of excitement around AI such as hasn’t been seen for a few decades. But those previous periods of inflated expectations led to troughs of disappointment. Will this time be different? Most likely. Applications of AI such as predictive analytics are already decreasing costs and improving reliability of industrial machinery. Furthermore, the funding and research going into AI now comes from a wide range of com...
The current age of digital transformation means that IT organizations must adapt their toolset to cover all digital experiences, beyond just the end users’. Today’s businesses can no longer focus solely on the digital interactions they manage with employees or customers; they must now contend with non-traditional factors. Whether it's the power of brand to make or break a company, the need to monitor across all locations 24/7, or the ability to proactively resolve issues, companies must adapt to...
"When we talk about cloud without compromise what we're talking about is that when people think about 'I need the flexibility of the cloud' - it's the ability to create applications and run them in a cloud environment that's far more flexible,” explained Matthew Finnie, CTO of Interoute, in this SYS-CON.tv interview at 20th Cloud Expo, held June 6-8, 2017, at the Javits Center in New York City, NY.
Internet of @ThingsExpo, taking place October 31 - November 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA, is co-located with 21st Cloud Expo and will feature technical sessions from a rock star conference faculty and the leading industry players in the world. The Internet of Things (IoT) is the most profound change in personal and enterprise IT since the creation of the Worldwide Web more than 20 years ago. All major researchers estimate there will be tens of billions devic...
SYS-CON Events announced today that MobiDev, a client-oriented software development company, will exhibit at SYS-CON's 21st International Cloud Expo®, which will take place October 31-November 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. MobiDev is a software company that develops and delivers turn-key mobile apps, websites, web services, and complex software systems for startups and enterprises. Since 2009 it has grown from a small group of passionate engineers and business...
SYS-CON Events announced today that GrapeUp, the leading provider of rapid product development at the speed of business, will exhibit at SYS-CON's 21st International Cloud Expo®, which will take place October 31-November 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. Grape Up is a software company, specialized in cloud native application development and professional services related to Cloud Foundry PaaS. With five expert teams that operate in various sectors of the market acr...
SYS-CON Events announced today that Ayehu will exhibit at SYS-CON's 21st International Cloud Expo®, which will take place on October 31 - November 2, 2017 at the Santa Clara Convention Center in Santa Clara California. Ayehu provides IT Process Automation & Orchestration solutions for IT and Security professionals to identify and resolve critical incidents and enable rapid containment, eradication, and recovery from cyber security breaches. Ayehu provides customers greater control over IT infras...
In this presentation, Striim CTO and founder Steve Wilkes will discuss practical strategies for counteracting fraud and cyberattacks by leveraging real-time streaming analytics. In his session at @ThingsExpo, Steve Wilkes, Founder and Chief Technology Officer at Striim, will provide a detailed look into leveraging streaming data management to correlate events in real time, and identify potential breaches across IoT and non-IoT systems throughout the enterprise. Strategies for processing massive ...
SYS-CON Events announced today that Cloud Academy named "Bronze Sponsor" of 21st International Cloud Expo which will take place October 31 - November 2, 2017 at the Santa Clara Convention Center in Santa Clara, CA. Cloud Academy is the industry’s most innovative, vendor-neutral cloud technology training platform. Cloud Academy provides continuous learning solutions for individuals and enterprise teams for Amazon Web Services, Microsoft Azure, Google Cloud Platform, and the most popular cloud com...
In his session at Cloud Expo, Alan Winters, an entertainment executive/TV producer turned serial entrepreneur, presented a success story of an entrepreneur who has both suffered through and benefited from offshore development across multiple businesses: The smart choice, or how to select the right offshore development partner Warning signs, or how to minimize chances of making the wrong choice Collaboration, or how to establish the most effective work processes Budget control, or how to ma...
SYS-CON Events announced today that Enzu will exhibit at SYS-CON's 21st Int\ernational Cloud Expo®, which will take place October 31-November 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. Enzu’s mission is to be the leading provider of enterprise cloud solutions worldwide. Enzu enables online businesses to use its IT infrastructure to their competitive advantage. By offering a suite of proven hosting and management services, Enzu wants companies to focus on the core of their ...
We build IoT infrastructure products - when you have to integrate different devices, different systems and cloud you have to build an application to do that but we eliminate the need to build an application. Our products can integrate any device, any system, any cloud regardless of protocol," explained Peter Jung, Chief Product Officer at Pulzze Systems, in this SYS-CON.tv interview at @ThingsExpo, held November 1-3, 2016, at the Santa Clara Convention Center in Santa Clara, CA
With major technology companies and startups seriously embracing Cloud strategies, now is the perfect time to attend 21st Cloud Expo October 31 - November 2, 2017, at the Santa Clara Convention Center, CA, and June 12-14, 2018, at the Javits Center in New York City, NY, and learn what is going on, contribute to the discussions, and ensure that your enterprise is on the right path to Digital Transformation.
SYS-CON Events announced today that IBM has been named “Diamond Sponsor” of SYS-CON's 21st Cloud Expo, which will take place on October 31 through November 2nd 2017 at the Santa Clara Convention Center in Santa Clara, California.
SYS-CON Events announced today that CA Technologies has been named "Platinum Sponsor" of SYS-CON's 21st International Cloud Expo®, which will take place October 31-November 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. CA Technologies helps customers succeed in a future where every business - from apparel to energy - is being rewritten by software. From planning to development to management to security, CA creates software that fuels transformation for companies in the applic...
Amazon started as an online bookseller 20 years ago. Since then, it has evolved into a technology juggernaut that has disrupted multiple markets and industries and touches many aspects of our lives. It is a relentless technology and business model innovator driving disruption throughout numerous ecosystems. Amazon’s AWS revenues alone are approaching $16B a year making it one of the largest IT companies in the world. With dominant offerings in Cloud, IoT, eCommerce, Big Data, AI, Digital Assista...
Multiple data types are pouring into IoT deployments. Data is coming in small packages as well as enormous files and data streams of many sizes. Widespread use of mobile devices adds to the total. In this power panel at @ThingsExpo, moderated by Conference Chair Roger Strukhoff, panelists looked at the tools and environments that are being put to use in IoT deployments, as well as the team skills a modern enterprise IT shop needs to keep things running, get a handle on all this data, and deliver...
In his session at @ThingsExpo, Eric Lachapelle, CEO of the Professional Evaluation and Certification Board (PECB), provided an overview of various initiatives to certify the security of connected devices and future trends in ensuring public trust of IoT. Eric Lachapelle is the Chief Executive Officer of the Professional Evaluation and Certification Board (PECB), an international certification body. His role is to help companies and individuals to achieve professional, accredited and worldwide re...
With the introduction of IoT and Smart Living in every aspect of our lives, one question has become relevant: What are the security implications? To answer this, first we have to look and explore the security models of the technologies that IoT is founded upon. In his session at @ThingsExpo, Nevi Kaja, a Research Engineer at Ford Motor Company, discussed some of the security challenges of the IoT infrastructure and related how these aspects impact Smart Living. The material was delivered interac...
IoT solutions exploit operational data generated by Internet-connected smart “things” for the purpose of gaining operational insight and producing “better outcomes” (for example, create new business models, eliminate unscheduled maintenance, etc.). The explosive proliferation of IoT solutions will result in an exponential growth in the volume of IoT data, precipitating significant Information Governance issues: who owns the IoT data, what are the rights/duties of IoT solutions adopters towards t...