Thursday, September 27, 2007

[Event] VLDB Interviews 2: E. Brewer, M. Stonebraker, M. Brodie

As already explained in the previous posting, we had the great opportunity to record interviews with the keynote speakers of VLDB 2007. In the second podcast episode we got three more interviews with Eric Brewer, Michael Stonebraker and Michael Brodie (from left to right):

Eric Brewer talks about technologies that can help emerging countries in building up IT and communications infrastructure, Michael Stonebraker (who also writes a Blog: "The Database Column") and Michael Brodie talk about trends in database technology, enterprise data management and limits of current technologies and product.

All three are asked about research and about the time-to-market issue for new ideas Werner Vogels brought up in the last interview. Additionally innovation at "big" companies vs. startups is discussed and how venture capital can be used to get out your innovative ideas.

Again to mention: the Podcast series in general is German, the interviews are English. Thanks a lot to Dr. Ross King from Vienna University who again asked the questions in the interview.

Wednesday, September 26, 2007

[Pub] Agile development with jMatter

In the current Java magazine (also available online) I've wrote a german article about agile development with jMatter. This technology implements the Naked Objects Architectural Pattern by using Hibernate, Swing and Java Web Start. The main focus in Naked Objects or jMatter is the domain object which will be wrapped with different aspects, like:
  • Persistence
  • Logging
  • GUI
  • Validation
  • Searching and some other aspects
Such aspects are supported by jMatter and will be generated in a generic way. All these things can be customized in order to fit your requirements. jMatter enables a realy fast prototyping. Check out this article and let impress you by this impulsive technology.

Tuesday, September 25, 2007

[Event] "Does Amazon do research?" Amazon CTO Vogels in Interview

Today I had the pleasure to record the interview with Werner Vogels, the CTO from Amazon.com, who held the keynote speach of the Very Large Databases Conference currently held in Vienna.

The interviewer is Dr. Ross King from Vienna University and the interview is part of our "Woche der Informatik" podcast. This podcast is actually in German, however for the English speaking audience the VLDB keynote interviews (starting with this one) are accessible as well. Just ignore the German introduction and jump right into the talk with Dr. Vogels (chapter marks...).



Actually the keynote (and the interview) was very interesting, some points Dr. Vogels discussed where:
  • The problem of state management ("state management is a dominant factor in scaling")
  • Amazon as company: "Amazon is a technology company that accidentally works as a retailer"; he also shows a series of other E-Commerce sites like Marks and Spencer, Mothercare, Smug Mug and others that are actually build on top of Amazon technology.
  • Amazon apparently goes the way (similar like EBay): from a retailer (auction house) to an e-commerce technology provider/platform.
  • A dominant issue in the talk was scalability. COTS products typically do not scale the way Amazon needs it (we tried out mainframes - for one year). Vogels refers to the stability and self-organisation features of biological systems and names particularly "Apoptosis": cell-death; allthough daily 50-70 billion cells die every day, the biological system is stable, aka the human stays alive.
  • Thus Amazon services are build highly redundent. The loss of a complete datacenter would not harm the customer experience. He additionally shares two experiences that might contradict certain academic ideas:
    • "Everything fails, all the time"
    • Systems do not fail by stopping, they might actually do all sorts of weird things in between.
  • Vogels claims, that Amazon did SOA before it became a buzzword.
  • So eventually his bottom line is "Architecture for change".
The presentation was very vivid, and I think some of the ideas were also captured in the interview (and btw. Dr. Vogels has his own Blog: All things distributed. However, parts of the ideas he expressed reminded me strongly to a very good book I like to recommend: Stan Davis and Christopher Meyer. It’s Alive: The Coming Convergence of Information, Biology and Business. Texere Publishing, 2003.

Check out the podcast website!
Or go directly to the feed page.

So, to eventually answer the question in the title, a last quote I personally liked: "Does Amazon do research? We call it production."

Monday, September 24, 2007

[Event] Euromicro Conference on Software Engineering and Advanced Applications (SEAA)

From August 28-31 the 33rd Euromicro Conference on Software Engineering and Advanced Applications (SEAA) 2007 took place in Lübeck, Germany. An important goal of the conference is bringing together people from business, industry, research, and academia who are working in software engineering and information technology with its various aspects.

The different topics ware represented in three main conference tracks
  • Component-Based Software Engineering (CBSE)
  • Multimedia and Telecommunications (MMTC)
  • Software Process and Product Improvement (SPPI)
The conference also includes special sessions that reflect particular research and development topics in areas related to the tracks or in new emerging areas.
  • Next Generation of Web Computing
  • Service Orientation
  • Software Management
  • Work in Progress
All accepted papers were included in the proceeding which was published by the IEEE/CS. The proceeding is also listed in DBLP. Beside presentations and discussions of academic papers, "state of the art" presentations focus on relevant topics for industry and best software engineering practice.
  1. Software Components and Software Architecture: Software Design on its Road to an Engineering Discipline (Prof. Dr. Ralf Reussner)
  2. How good is a process: Evaluating Engineering Processes' Efficiency (Tom Gilb)
  3. Grid Computing: Operating Large Distributed Infrastructures for Advanced Applications (Christian Grimm)
Dietmar Winkler (Edited by Alexander Schatten)

Thursday, September 20, 2007

[Tech] Introduction to JPA

Regarding to my previous post about JPA and DAO it is useful to look at the following article, illustrating a small example showing the basic usage of JPA. The example includes:
  • Annotate your object model with Java Persistence Annotations, including relationships and inheritance
  • How do work with lazy initialations
  • Named Queries
  • How to use the Entity Manager
The example should clarify the discussion about JPA and DAO. Have fun!

Wednesday, September 19, 2007

[Arch] Has JPA killed the DAO

I've found an interesting post discussing "JPA killed the DAO". The DAO (Data Access Object) pattern is one of the fundamental patterns used in building software systems. This object abstract and encapsulates all access to the data (database, file, xml...) and provides a common interface, used by the business layer.

The new Java Persistence API defines an interface to persist normal Java objects (POJOs) by annotating the objects with persistence meta data. All the "magic" is done by the EntityManager, providing a generic data access functionality. To write DAOs for each business object where simple CRUD operations take place (only for database) is a boring task. However, JPA is only for database. What if you access files, LDAP or other systems? In these cases a DAO makes sense, because the DAO abstracts all sorts of data access (database, file, ldap or whatever "behind" a common interface). Still, JPA is a major enhancement towards database handling.

Tuesday, September 18, 2007

[Event] European Software Engineering Conference (ESEC)

From August 5 to 7 the European Software Engineering Conference (ESEC) 2008 took place in Croatia, Dubrovnik. An important feature of the conference, besides presentation and discussion of academic papers, were "state of the art" presentations on research topics that are particularly relevant for industry and Best Software Engineering Practices (Slides are online). In this Blog article I review some interesting presentations from the conference:

1. Software Engineering Research on Test Prioritization (Elaine Weyuker, AT&T Labs Research, USA)

This talk provided a case study on research on software testing prioritization (prediction of location of faults in the next release of large industrial software systems) from problem inception to algorithm definition and small proof-of-concept studies, large empirical studies in several industry contexts, and finally tool building to automate the process and make it easily accessible to practitioners.

Particularly interesting aspects were:
  1. how to get industry to take part in research activities;
  2. how to package research results in a way that is useful to practitioners, and
  3. fosters academic discussions.
2. On Marrying Ontology and Software Technology (Steffen Staab, U. Koblenz, Germany)

Software engineering models for purposes such as software design, software configuration or software validation can be augmented with Ontologies, which constitute domain models formalized using expressive logic languages for class definitions and rules.

This talk gave an outline of current ontology technologies and described avenues of research for joining ontology and software technology, i.e.
  1. by increasing the expressiveness of software design models through ontologies,
  2. by improving accessability and maintainability of software configurations, and,
  3. by validating software design models using ontology reasoning.

3. Quantitative Verification: Models, Techniques and Tools (Marta Kwiatkowska; Oxford U., England)

The talk addressed modeling and simulation of the usage of critical resources in model-driven engineering for complex software systems. While software modelling and analysis techniques such as testing, static analysis, model checking, and run-time monitoring are used routinely in the software engineering practice, quantitative verification techniques are needed to establish properties such as "the chance of battery power dropping below minimum is less than 0.01" and "the worst-case time to receive a response from a sensor is 5ms".

The talk gave an overview on state-of-the-art methods and tool support for probabilistic model checking for quantitative verification of systems which exhibit probabilistic behaviour.

4. Free/Open Source Software Development: Recent Research Results and Opportunities (Walt Scacchi; U. Irvine; USA)

The talk reviewed what is known about free and open source software development (FOSSD) work practices, development processes, project and community dynamics, and other socio-technical relationships. It explored how FOSS is developed and evolved based on an extensive review of a set of empirical studies of FOSSD projects:
  1. why individuals participate;
  2. resources and capabilities supporting development activities;
  3. how cooperation, coordination, and control are realized in projects;
  4. alliance formation and inter-project social networking;
  5. FOSS as a multi-project software ecosystem, and
  6. FOSS as a social movement.
Identifying emerging opportunities for future FOSSD studies gave rise to the development of new software engineering tools or techniques, as well as to new empirical studies of software development.

Stefan Biffl (edited by Alexander Schatten)

Sunday, September 16, 2007

[Tech] XFire and Celtix merge

For several month I developed an application dealing with web services. For this project I discovered XFire, the new generation SOAP framework. Last year the XFire and Celtix communities considered to merge XFire with Celtix which eventually became real! XFire is now Apache CXF (Incubator) focusing on providing an easy to use service framework. Services can deal with a wide range of protocols, such as SOAP, XML/HTTP, RESTful HTTP and some others. The XFire team see this important step as an huge enhancement for current XFire users:
  • JAX-WS Specification compliance
  • Improved HTTP and JMS Transports
  • Spring 2.0 XML support
  • RESTful services support
  • Great WS-* support: WS-Addressing, WS-Policy, WS-ReliableMessaging, and WS-Security are all supported
  • Support for JSON
  • SOAP w/ Attachments support
  • Improved APIs and extension points
  • A larger community, which means faster development, and better support
It is recommended to use CXF in future projects, because feature development of XFire will take place in CXF and not in XFire itself. Actual XFire projects can be migrated to CXF by using this guide.

[Tech] Briefings Direct Podcast Series

Today I found a potentially very interesting Podcast for developers and architects interested in, let's say B2B scenarios: Briefings Direct Podcast. This is a Podcast series from the Interarbor Solutions Analyst Dana Gardner.

However, this podcast series already has nearly 100 episodes with titles like:
  • SOA Insights Analysts on SOA Appliances, BPEL4People and GPL v3
  • Open Source Projects Empower SOA Infrastructure Definition and Development
  • SaaS Providers Increasingly Require 'Ecology' Solutions from Infrastructure Vendors
  • Apache Camel Addresses Need for Discrete Infrastructure for Services Mediation and Routing
I personally was most interested in the Podcast covering Apache Camel, interviewing one of the core developers James Strachan. I am most interested in Camel, as it implements (many) of the EI patterns suggested by Gregor Hohpe. Camel helps developers who use a broad variety of middleware technologies and strategies (JBI ESB, Active MQ, SOA with webservices, ...) to implement these patterns.

Speaking of which (ok, I am a little jumpy today), whoever might not know it by now: Gregor Hohpe will give a speech at Vienna University of Technology this friday.

Update: Please read the comment Dana Gardner postet to this Blog entry: They actually provide a transcript for each podcast episode (whoever is doing this heroic job of transcribing interviews, it sure is very helpful to dig into some details or search for quotations.). So check this out too!

Friday, September 07, 2007

[Event] Informatics-Week

From September 19 to September 28 the "Informatics-Week" takes places in Austria. This series of events is organised by the Austrian Computer Society. In this week a series of high-profile IT conferences are held in Austria, most prominent and from the Software Engineering point of view maybe the most important one is the Very Large Databases (VLDB) conference.



The informatics week additionally launches a set of events ("day of meda", "day of economy", "day of research" and so on), however a detailed program can be found here.

I am running a podcast that started reporting this week about the preparations of the events and gives insight into upcoming events. For SE people I will make also a coverage of VLDB with the support of the general chair of the VLDB Prof. Klas. The first VLDB coverage will be "on the (podcast) air" by next week.

So if you are interested, check out and subscribe to the Podcast. Or directly subscribe to this URL e.g. in iTunes (check the advanced / erweitert menu):

http://feeds.feedburner.com/woche-der-informatik

This is an enhanced Podcast (i.e., contains images and urls), if you are not experienced with listening to podcasts, please check out the brief description I made for the Best-Practice-Software-Engineering Podcast here (but of course use the URL above; unless you want to subscribe also to the SE podcast...).

Monday, September 03, 2007

[Arch] Design a Good API is hard

It takes a long time to learn an API. Especially in the Java world, where a lot of Open Source frameworks are out there. Beside the documentation, also the API is an important factor whether a framework success or failure. It heavily depends on developers experience how easy to handle with the API. Are there any best practices out there to design good APIs? I think there are many start points to design good APIs, e.g. naming or provide small APIs. But there are many other factors influence really good APIs. The ACM queue published an article called API: Design Matters, analyzing apsects of good and bad APIs.

There is also a very good presentation about How to design a good API and why it matters, hold by Joshua Bloch. In this presentation, he assumed why good APIs are important, e.g.:
  • Many people work with API
  • People invest heavily: buying, writing, learning
  • Successful public APIs capture customers
  • and as I mentioned before it contributes to the success of a product/technology
The characteristics of a good API are:
  • Easy to learn
  • Easy to use, even without documentation
  • Hard to misuse
  • Easy to read and maintain code that uses it
  • Sufficentily powerful to satisfy requirements
  • Easy to extend
  • Appropriate to audience
Additional to the above mentioned characteristics an API should also be good documented by using JavaDoc in case of Java. Why JavaDoc? The javadoc goes hand in hand with the development of an interface and is easy to update. It just depends on the developers discipline. The presentation provides a really good starting point by explaining how to write good APIs. He always provide short code snippets as a discussion base. Check out the article and presentation, and learn how to write good APIs.

Sunday, September 02, 2007

[About] Happy Birthday :-)

As time goes by...

Actually our Best-Practice SE Blog is meanwhile one year old! We started with this Blog end auf August 2006.

I must say, that I am quite happy with the impact so far. We have regular writers and readers, and the quality of the blog entries is good from my point of view. In 2006 we had 44 articles, and in 2007 (until now) we have 42 so far with on average more than 5 articles per month, so it seams, that writing is a rather steady process.

Also the number of readers is slightly, but continuously raising over the last years. About the Feed subscription I don't have proper information yet, I just recently started the feedburner service.

However, I want to thank all authors for their articles, and hope that everyone is motivated to participate even more in the next year.

I also (last but not least) want to thank our readers and would ask them for critical and positiv feedback!! Please use the comment function!!