Archive for the 'Computer Science' Category

Xpath Basics: Introduction to XPath with an Example Java Project

xpathXPath is a W3C recommendation used to search and find parts of an XML document through a path expression. The elements or attributes that match the path expression will be returned for further processing by the invoking command, module, actor, or component.

In this post, I will explain about the basic concept of XPath via presentation slides. The presentation starts with a revisit to some of the XML key concepts. Subsequently, it shows sufficient elaboration of the basic concept of XPath. It concisely describes the key features of XPath that are worth knowing and practically useful especially when searching inside XML files.

The final part of the presentation consists of a sample project accompanied with some screenshots provided for readers to experiment with. In an upcoming post, I will show how the sample project can be converted into a Maven project for more convenient use and distribution.

You can download the slides from the following URL:

Xpath Basics (838)

Why Events Are a Bad Idea

With the always increasing needs for more responsive and better performing application, modern applications these mostly adopt concurrent computing model. In this model, a task is divided or split into multiple parts and then passed to a number of processing workers that will work on each part and then coordinate to help build the whole solution to the problem. Another case is when a stack of tasks or problems is forwarded to a number of processing workers having identical processing routine so that stack can be emptied faster. The application which applies the concurrent computing model is called concurrent application.

Two popular approaches have been widely used to address computation in a concurrent application: thread-based approach and event-based approach. Nowadays, event-based approach is a more likely to be found in the implementation of a concurrent application. Nonetheless, this does not mean that thread-based model never gains traction.

This article summarizes the paper with the same title, which offers thought-provoking argumentations on the merit of thread-based approach over event-based approach in developing a highly concurrent application. What’s interesting from the paper is not only does it provide conceptual and theoretical argumentation, it also shows some empirical results in the defense of the provoking statements.

You can download the presentation from the link below:

Why Events Are a Bad Idea (1756)

The Enterprise Service Bus: Making Service-Oriented Architecture Real

Enterprise solutions are often complex and heterogeneous. It is a perfect analogy of a system of systems. In this article, I provide a presentation delivered about Enterprise Service Bus (ESB). The presentation is based on a paper of the identical title, authored by M. T. Schmidt et al.

The presentation summarizes the key points in the paper. It highlights the definition and concept of the ESB and the common cases where it can be applied to a certain problem domain. Later it discusses several common mediation and usage patterns that can be chosen as the most proper strategy in resolving the system integration problem.

By nature, this presentation is targeted to computer science researchers. However, software or system engineers who want to get a better grasp of the ESB concept may also find the presentation and the original paper useful.

You can download the presentation from the link below:

The Enterprise Service Bus: Making Service-Oriented Architecture Real (4089)

Survey of Publish Subscribe Event Systems

This presentation contains the summary of the paper of the same title. The paper primarily discusses about existing publish subscribe systems and how each of them differs from the rest.

A computer science researcher in search of a comprehensive summary of publish-subscribe system may find the paper (and this summary) useful. Additionally, the paper can provide some conceptual information and knowledge for software engineers implementing or about to implement a event-based pubsub system.

You can download the presentation from the link below:

Survey of Publish Subsribe Event Systems (1499)

What We Can Do in The Cloud (Part 2)

This presentation was made back in 2010. Some parts of the content may have been irrelevant or obsolete as the technology progresses. However, this presentation can still be helpful especially for those who want to look closer into cloud computing concept and its implementation.

This is the last presentation from the series about cloud computing introduction. This part contains information about Google App Engine (GAE) and Hadoop quick-starts. Those who are interested in building their applications on top of GAE PaaS may find this presentation helpful. Obviously GAE has undergone some changes since 2010. So, please reflect to their changes accordingly. Similarly, those who are Hadoop first-timers may be curious about the its concept and how to use it in the big data realm.

You can download the presentation from the link below:

What We Can Do in the Cloud (Part 2) (850)