InfoQ Homepage Articles
-
Introducing Multithreaded Programming to JavaScript
While increasingly more websites are fully or partially based on AJAX, it is still difficult to develop complicated AJAX applications. What is the main issue which causes this difficulty in developing AJAX applications? Is it asynchronous communication with the server, or is it GUI programming? How can a multithreading JavaScript library help to ease some of these issues?
-
Beyond SOA: A New Type of Framework for Dynamic Business Applications - Part II
In this second part of their article, the authors explore the architecture of Dynamic Business Applications and introduce the concept of a Resource Container. They demonstrate how this architecture can be layered on top of JEE and how it impacts implementation productivity.
-
Rationalizing the Presentation Tier
Thin client paradigm characterized by web applications is a kludge that needs to be repudiated. Old compromises are no longer needed and it's time to move the presentation tier to where it belongs. In this article, Ganesh Prasad and Peter Svensson explains how and why.
-
AtomServer – The Power of Publishing for Data Distribution
In this article, Bryon Jacob and Chris Berry introduce AtomServer, their implementation of a full-fledged Atom Store based on Apache Abdera. The authors spent the last year implementing an Atom Store for Homeaway, their employer, and are mnow making the Atom Store framework available as open source.
-
An Introduction to Virtualization
It is easy to think that virtualization applies only to servers. In reality the recent resurgence of the concept is being applied at a variety of levels including networking, storage, and application infrastructure. In this introduction to the topic InfoQ dives into each area describing its uses as well as benefits and disadvantages.
-
REST Anti-Patterns
In this article, Stefan Tilkov explains some of the most common anti-patterns found in applications that claim to follow a "RESTful" design and suggests ways to avoid them: tunneling everything through GET or POST, ignoring caching, response codes, misusing cookies, forgetting hypermedia and MIME types, and breaking self-descriptiveness.
-
Choosing between Routing and Orchestration in an ESB
In this article, Adrien Louis and Marc Dutoo discuss the differences and relative merits of using orchestration vs. routing in a typical ESB setup. They discuss various approaches to connecting services, from low level ones like customized routing, to high-level ones using business oriented approaches like workflow and orchestration, and conclude that there is no one-size-fits-all solution.
-
User Story Estimation Techniques
One of the great things about working as a consultant is the ability to try out many different ideas and adapting your personal favorite process to include things that work. This article gives the details about user story estimation techniques that Jay Fields has found effective.
-
Do Java 6 threading optimizations actually work? - Part II
Features like biased locking, lock coarsening, lock elision by escape analysis and adaptive spin locking are all designed to increase concurrency by allowing more effective sharing amongst application threads. But do they actually work? In this two part article, Jeroen Borgers explores these features and attempt to answer the performance question with the aid of a single threaded benchmark.
-
Best Practices for Model-Driven Software Development
Model-driven software development no longer belongs to the fringes of the industry but is being applied in more and more software projects with great success. In this article we would like to pass on, based on the experiences we have gathered in the past few years, our contribution to its best practices.
-
An Introduction to Lean Thinking for Software
For Agile developers only familiar with Scrum or XP, it may be unclear how Lean relates to what they do. This article introduces Lean Thinking and how it enhances software development. Ning Lu of ThoughtWorks China identified the biggest obstacle to Lean or Agile as the mind-set developed during the period of large-scale manufacturing.
-
Domain Specific Languages in Erlang
Erlang is well known for it's concurrency model and fairly well known for robustness. But what about other aspects? In this article, Dennis Byrne shows how to use Erlang for creating internal DSLs.