Saturday, December 17, 2005

Today's Paper: Aspects and Annotations

In an ECOOP 2005 paper, Gregor Kiczale, the father of AOP, and Mira Mezini discusses well about how the notion of annotations (like ones available with Java 5) relates to the notion of aspects. An amazing viewpoint for annotations is to regard them to bind attributes to program points just like procedure calls which bind program points to operations.
  • Gregor Kiczales and Mira Mezini, Separation of Concerns with Procedures, Annotations, Advice and Pointcuts, In Proc. of ECOOP 2005 - Object-Oriented Programming: 19th European Conference, Glasgow, UK, July 25-29, 2005. [Abstract/Link]
Title
Separation of Concerns with Procedures, Annotations, Advice and Pointcuts

Abstract
There are numerous mechanisms for separation of concerns at the source code level. Three mechanisms that are the focus of recent attention – metadata annotations, pointcuts and advice – can be modeled together with good old-fashioned procedures as providing different kinds of bindings: procedure calls bind program points to operations, annotations bind attributes to program points; pointcuts bind sets of points to various descriptions of those sets; named pointcuts bind attributes to sets of points; and advice bind the implementation of an operation to sets of points. This model clarifies how the mechanisms work together to separate concerns, and yields guidelines to help developers use the mechanisms in practice.

Saturday, December 10, 2005

Today's Person: Ron Bodkin - The AOP Practitioner

Ron Bodkin (his blog), the founder of a venture company, New Aspects of Software, is one of most keen practitioners of AOP. He has many articles and presentations on practical use of aspects in enterprise software development.

For example, one of his recent article mentions about load-time weaving:
His presentation packages are available from:
They are some-rights-reserved by creative commons, that is, allowing freely to copy, distribute, display, and perform the work, and to make derivative works, under some conditions.

Tuesday, December 06, 2005

A Healthcare Domain-Specific Solution Platform by Sun Microsystems

Sun Microsystems announces their new platform specialized for the healthcare application domain.
As the market of application servers grows, it is getting to make sense for platform vendors to provide domain-specific frameworks if the market of each domain is enough large.

What domains are lucrative, though? The Healthcare domain looks so, at least.

Saturday, November 26, 2005

Today's Paper: Service-Oriented Network Sockets

Abstraction is good thing if it is done in an appropriate way. If the world shifted to service-orientation, its details should be transparent, that is, abstracted. A new programming model is an easy way to do so, but there is a challenging way to archieve it within a network layer. Umar Saif et al. give us a good introduction to thread a thorny path to heaven.

Umar Saif and Justin Mazzola Paluska, Service-Oriented Network Sockets, In Proc. of MobiSys'03. [link(Abstract/PDF/HTML)]

Title:
Service-Oriented Network Sockets

Abstract:
This paper presents the design and implementation of service-oriented network sockets (SoNS) for accessing services in a dynamically changing networked environment. A service-oriented network socket takes a high-level description of a service and opportunistically connects to the best provider of that service in the changing characteristics of a mobile system. An application states its high-level service requirements as a set of constraints on the properties required in a suitable resource and SoNS continuously monitors, evaluates and compares the available resources and (re-)connects to the resource that best satisfies the specified constraints.

Unlike content-based routing systems, SoNS is an end-host system, interposed at the session-binding layer, and offers connection-oriented semantics. SoNSユ interface allows an application to tailor the planning policy used to establish and rebind a network session. SoNS is based on an extensible architecture to leverage the wide-range of emerging technologies for discovering and locating resources in a mobile system.

SoNS integrates a service-oriented abstraction with the traditional operating system interface for accessing network services, making it simpler to develop pervasive, mobile applications. We present an implementation for a mobile handheld device, analyze the performance of our system and describe an application to demonstrate the utility of our system.

Saturday, November 19, 2005

Today's Book: Capacity Planning for Web Performance: Metrics, Models, and Methods

Capacity planning explained well. Capacity Planning for Web Performance can show you the techniques for estimating and planning effectively for your Web site's workload, both for today and tomorrow.

Capacity Planning for Web Performance: Metrics, Models, and Methods, by Daniel Menasce, Virgilio A. F. Almeida, Prentice Hall, May, 1998.







Friday, November 18, 2005

Today's Book: The Enterprise Unified Process

Today's development organizations need to extend RUP to cover the entire IT lifecycle, including the cross-project and enterprise issues it largely ignores. The Enterprise Unified Process (EUP) does that.







Ajax for Mobile

Opera Software released a new SDK for Web applications on mobile phones, which allows developers to create platofrom independent applications using Ajax.
This can be possible because they support well known Web technologies such as HTML, CSS and JavaScript, including XMLHttpRequest. "With Opera Platform we are now building the foundation for the next generation of mobile services by enabling the easy, fast and cost- effective creation of compelling Web based mobile applications," says Timo Bruns, Opera Software VP.

With an appropriate accounting model, it would "happen".

Today's Paper: Model-Driven Performance Evaluation

Simonetta Blasamo, a professor of Computer Science at Università Ca' Foscari di Venezia, Italy, has been doing great work in the research area of software performance modeling.

His survey paper gives us a fairly good overview of what is going on in the area of model-driven perfromance evaluation.
  • Simonetta Balsamo, Antinisca Di Marco, Paola Inverardi, and Marta Simeoni, Model-Based Performance Prediction in Software Development: A Survey, IEEE Trans. Software Eng. 30(5): pp.295-310, 2004.
Electronic version is available from:
http://doi.ieeecomputersociety.org/10.1109/TSE.2004.9

Title:
Model-Based Performance Prediction in Software Development: A Survey

Abstract:
Over the last decade, a lot of research has been directed toward integrating performance analysis into the software development process. Traditional software development methods focus on software correctness, introducing performance issues later in the development process. This approach does not take into account the fact that performance problems may require considerable changes in design, for example, at the software architecture level, or even worse at the requirement analysis level. Several approaches were proposed in order to address early software performance analysis. Although some of them have been successfully applied, we are still far from seeing performance analysis integrated into ordinary software development. In this paper, we present a comprehensive review of recent research in the field of model-based performance prediction at software development time in order to assess the maturity of the field and point out promising research directions.

Wednesday, November 16, 2005

Today's Paper: Using XForms to Simplify Web Programming

An XForms-based programming model for web applications, HopiXForms (HX), is presented.
It allows multi-targetting of applications.
An XForms processor is essentially a virtual machine that interprets a well-defined, declarative specification language for forms.

Richard Cardone, Danny Soroker, Alpana Tiwari, Using XForms to Simplify Web Programming, In Proc. of WWW 2005, Chiba, Japan, May10-14, 2005.

A pdf file is available from:
http://www2005.org/cdrom/docs/p215.pdf

Title:
Using XForms to Simplify Web Programming
Abstract:
The difficulty of developing and deploying commercial web
applications increases as the number of technologies they use
increases and as the interactions between these technologies
become more complex. This paper describes a way to avoid this
increasing complexity by re-examining the basic requirements of
web applications. Our approach is to first separate client concerns
from server concerns, and then to reduce the interaction between
client and server to its most elemental: parameter passing. We
define a simplified programming model for form-based web
applications and we use XForms and a subset of J2EE as enabling
technologies. We describe our implementation of an MVC-based
application builder for this model, which automatically generates
the code needed to marshal input and output data between clients
and servers. This marshalling uses type checking and other forms
of validation on both clients and servers. We also show how our
programming model and application builder support the
customization of web applications for different execution targets,
including, for example, different client devices.

"Web-Serviced" Lotus Notes

I am using Lotus Notes in my office. Though it is very useful, especially with its rich UI and replication facility, it is sometimes not easy for me to reuse existing information or functionality in Lotus Notes DBs. Lotus Domino's rich functionality in customizing servers may allow to do this, it is better to support Web Service, that is, providing services with published WSDL and using standard protocols like SOAP/HTTP.

Is there any way to do this? The new version of Lotus Notes/Domino may be a solution.

Some Research Perspectives on Ajax

Despite Ajax is cool, it is often said that it is not about technologies but just about techniques.
Then, are there any research oppotunities on this topic?

A good platform for a rich client.
  • In this sense, Ajax is important only because it is based on standards. Usually, nothing is required for client node configuration.
  • Problem here is that it has several restrictions for building rich GUI, such as, the "back button" problem. Employing a better client environment, which is not a standard, instead of Ajax doesn't make sense from this viewpoint. For example, proposing better GUI with Macromedia Flash is not so good way as a research direction. Proposing better standards for better GUI (based of studies on what is desired, which is not available with the current standards) makes some sense, though.
A target of GUI-enabled software development.
  • In this sense, Ajax is yet another target platform in developing application software.
  • Research direction arized here is the unification of development efforts for other possible GUI platforms, that are, AWT/SWT for example. For example, the goal "write once to run on both Eclipse and Ajax" is not bad.
A good GUI with dynamic interactions between human and network.
  • In this sense, applications with Ajax often provides good user experience. I believe it mostly comes from the asynchronousness thanks to XMLHttpRequest. Though it must have been possible with conventional fat clients, they have rarely done maybe because of some difficulty in use of Web Services (REST, SOAP, whatever) with clients (not servers).
  • There may be rooms for investigating potential GUI enhancements in this area.

Tuesday, November 15, 2005

Today's Paper: Chikenfoot - Ajax-based Webapp programming system by Michael Zolin, et al.

An excellent paper (in fact, a best-paper-awarded paper) describing technologies (a Web application development tool) with Ajax-like techniques.

Michael Bolin, Matthew Webber, Philip Rha, Tom Wilson, Robert Miller, Automation and Customization of Rendered Web Pages, In Proc. of UIST 2005, Seattle, WA, USA, Oct 23-26, 2005.

A pdf file available from:
http://groups.csail.mit.edu/uid/projects/chickenfoot/uist05.pdf

Title:
Automation and Customization of Rendered Web Pages
Abstract:
On the desktop, an application can expect to control its user
interface down to the last pixel, but on the World Wide
Web, a content provider has no control over how the client
will view the page, once delivered to the browser. This creates
an opportunity for end-users who want to automate and
customize their web experiences, but the growing complexity
of web pages and standards prevents most users from
realizing this opportunity. We describe Chickenfoot, a programming
system embedded in the Firefox web browser,
which enables end-users to automate, customize, and integrate
web applications without examining their source code.
One way Chickenfoot addresses this goal is a novel technique
for identifying page components by keyword pattern
matching. We motivate this technique by studying how
users name web page components, and present a heuristic
keyword matching algorithm that identifies the desired
component from the user’s name.

Saturday, November 05, 2005

Today's Book: The Rational Unified Process: An Introduction, Third Edition

The Rational Unified Process unifies the entire software development team and optimizes the productivity of every team member by putting the collective experience derived from thousands of projects and many industry leaders at your fingertips. Philippe Kruchten's concise book offers a quick introduction to the concepts, structure, content, and motivation of the Rational Unified Process—a Web-enabled software engineering process that enhances team productivity and delivers software best practices to all team members. The Rational Unified Process is unique in that it allows development teams to recognize the full benefits of the Unified Modeling Language (UML), software automation, and other industry best practices.







Wednesday, November 02, 2005

Requirements for shifts to SOA

Supporting the smooth shift from legacy components to SOA-enabled (Service Oriented Architecture) ones in enterprise architecture is a key requirement for wide-SOA adoption. An SOA structures large applications into reusable building blocks called “services” that respond rapidly to changing business conditions. For an enterprise, in order benefiting from SOA, they first need to transform their enterprise architecture so that it is at least partially SOA-enabled. However, it is often the case with enterprise that they also hate to dispose their current IT systems so drastically. In such situation, reusing legacy components rather than re-implementing them from scratch for provided SOA-enabled components is a preferred approach to SOA adoption for an enterprise in the real world.

Tuesday, November 01, 2005

Papers on Enterprise Server Performance Testing

I have just searched a bit for papers on performance testing that is specialized for enterprise servers.

Elaine J. Weyuker (DBLP) and her colleagues have done extensive work in this area.
http://www.research.att.com/info/weyuker/

Selected papers are listed below:

Saturday, October 22, 2005

Today's Book: Capacity Planning for Web Services

While we can find only little research on capacity planning, practioners actually do this. A book by Daniel Menasce et al. gives us a good insight for:
  • Web services: protocols, interaction models, and unique performance, reliability, and availability challenges
  • State-of-the-art capacity planning methodologies
  • Spreadsheets implement the solutions of the models presenteed in the book
  • Specific issues and workloads associated with HTTP and TCP/IP protocols
  • Benchmarking current performance at system and component levels

  • Daniel A. Menasce, Virgilio A.F. Almeida, Capacity Planning for Web Services: Metrics, Models, and Methods, Prentice Hall, Sep 11, 2001

Wednesday, October 19, 2005

Academic Conference for Wikis

WikiSym 2005, the first symposium on Wikis was held for Oct 16-18, 2005, San Diego, California, USA, co-located with ACM OOPSLA.

Thursday, September 08, 2005

Avoiding Code Generation Pain in JiBX

Generating correct and verifiable bytecode isn't always easy. Dennis Sosnoski, a famous programmer and the developer of JiBX, shares his insights from his painful classworking experiences along the way to the 1.0 production release of JiBX. He discusses the internal structures used for code generation and the steps he's gone through to make sure that the generated code follows JVM rules.

  • Classworking toolkit: Inside JiBX code generation - Find out how JiBX implements class file enhancement for XML data binding, by Dennis Sosnoski, IBM developerWorks, Sep 6, 2005.

Thursday, July 21, 2005

Enterprise Messaging Using JMS and IBM WebSphere

IBM's JMS provider, known as code name JetStream, is available in WebSphere 6. The article by Kareem Yusuf at WebSphere Journal gives us a good introductory for using this. http://websphere.sys-con.com/read/45008.htm

Saturday, June 04, 2005

AOSD surveys by AOSD-Europe

AOSD-Europe publishes some survey reports on AOSD in their website.
Published papers include:
  • Report of Current AOSD Tools-Based Activity in the Network. In this report, a survey of ongoing work in the AOSD-Europe network of excellence is presented.
  • Survey of Aspect-Oriented Analysis and Design. In this report, several methods and techniques for Aspect-Oriented Analysis and Design are presented.
  • Survey of Aspect-Oriented Languages and Execution Models. In this report, different Aspect-oriented Languages and Execution Models are presented.
  • Survey of Aspect-Oriented Middleware. In this report, different Aspect-oriented middlewares are presented and assessed.

About AOSD-Europe
European Network of Excellence on AOSD (AOSD-Europe), funded by the European Commission, aims to integrate research and practice from 9 achademic and 2 industrial partners in Europe with a view to address AOSD isssues on a larger scale.
http://www.aosd-europe.net/

Sunday, May 01, 2005

XForms and Internet Applications: XForms Patterns: Incremental and 'Google Suggest'

I didn't know that XForms is capable of Ajax-like dynamic interaction with users.

Mark Birbeck gives us a concrete example of reproducing Google Suggest with XForms.
XForms and Internet Applications: XForms Patterns: Incremental and 'Google Suggest'