vrijdag, oktober 23, 2009

SOA Symposium 2009 Revisited

Right. So far for making plans. After having visited enough conferences, I had to know that plans may still change just before the sessions start. Kind of like agile development I could have postponed some decisions to a later moment. For some stuff the YAGNI acronym counts.

For starters, this edition was much better organized than the 2008 edition. Better sessions, better food, better facilities (Amsterdam Arena as soccer stadium is still questionable, but as a conference facility it really sucks, liked Rotterdam WTC much more).

Some specific highlights of the sessions I visited:

Stuart Boardman made a clear distinction between User Identity Context and Service Identity Context in his session about Identity in the Cloud. He also explained concepts like PEP, PDP and Claims Bases Access Control. Also native speaker so didn't take extra effort to understand, did also participate in the debate on Agile development of SOA.

Clemens Utschig-Utschig brought some German friends who did not add anything viable to the session about Next Generation SOA. Gladly Clemens mentioned some clear solutions to problems like stale data and shaping data into events (EDA) and he endorsed my impression that he is a passionate presenter.

In "an in depth session on Service Oriented Modeling and Architecture" the depth was a bit disappointing. Ali Arsanjani did a good presentation, however stayed too long at the global level of SOMA. I hoped to learn more about Service Identification but I wil surely take some time to take a peek at the SOMA, specificly the SOMA Agile Profile.

Wondering how you can do a SAP-project on time, on budget and a happy customer? Sander Hoogendoorn and Twan van de Broek presented their experience with doing a SAP project in a agile way using smart use cases and a development process which mixes Scrum and Smart. Nice session, however not within time. Let's say that doing an agile SAP project is easier than doing an agile presentation.

Thoughtworks is known to have splendid architects and engineers that can present in a authentic and attractive style. Ian Robinson opted in his session for a new way to identify and prioritize services measured by added business value. Finally a PowerPoint without bullets and a nice story about the distinction between what and how using stories, capabilities, services and contracts.

After a good diner and a few beers with some of the EAD students, I had a good sleep (sleep late, hurray), breakfast and appeared reasonably fresh at the second day. I decided that I could use a wake-up call (actually not used to sleep late so I stated "reasonably" fresh) and visited Jim Webbers' session being "not a REST talk". Again a Thoughtworks representative with a loose style of presenting, I actually think Jim could succeed as a stand-up comedian as well, had a good laugh and learned a lot in little time. Good emphasis on high cohesion over loose coupling, the (not) need for an ESB, power of the web and French bridges.

The effect of the wake-up call disappeared when visiting John Davadoss' talk about Software and Services. John talked about Monetization, Experience, Composition/Mashup, Federation and Delivery of Services, however his talk a bit looked like it was a Mashup of other peoples' ideas. Nevertheless, I liked the example that illustrated that services - when concentrating on what instead of how - do not necessary have to be used in an equal way by different user profiles. A manager might have to use Outlook/Exchange/AD because of required audit tracing, a production worker might be better satisfied with Gmail or Live Mail.

Again a session by Ian Robinson illustrating the "power of the web" with a good old D&D game. Again no bullets, only images and codefragments that show the power of hypermedia. A bit disappointing was the fact that didn't mention how to define your own contracts using user defined hypermedia, but he got save by Jim Webber in the late session on "Hypermedia, the confusing bit in REST". Great humor, catchy example on Restbucks. Didn't expect too see pictures of Hillary Clinton here, her name has a much positive association for me now after attending Jim's talk.

Between the 'Thoughtworks-talks' I did visit a session on Building .NET Services for Collaboration and Composition from Herbjorn Wilhelmsen. First session that shows some actual code. So far for being positive: non-inspired and non-persuasive speaker and a non-cohesive presentation.

After all two great days with lots of new insight on software architecture, especially by the way Grady Booch performed a keynote session through SecondLife, really impressive (including the yawning caused by the difference in timezones :)). Let's see whether the organization can uphold or improve the quality of this 2009 edition.

dinsdag, oktober 20, 2009

Plans for SOA Symposium 2009

After a succesful SOA Symposium in 2008, I'll visit the 2009 edition next thursday and friday. I am thinking of visiting the following sessions:
  • "Identity In The Cloud" Speaker: Stuart Boardman (CGI)
  • "Cloud Computing and The Missing Trust Relationship" Speaker: Andor Demarteau (Capgemini)
  • "A Case Study: Combining Services, Events and Rules" Speaker: Art Ligthart and Michael Widjaja (Accenture)
  • "Mission impossible? Applying Agile to the World of SOA and ERP" Speaker: Sander Hoogendoorn, Capgemini and Twan van den Broek
  • "The Future's In Scope, But Where Do We Start?" Speaker: Ian Robinson (ThoughtWorks)
  • "This is Not a REST Talk" Speaker: Jim Webber (ThoughtWorks)
  • How Smart Use Cases Drive Service-Oriented Projects" Speaker: Sander Hoogendoorn (Capgemini)
  • "Real-Life Use Cases of SOA Design Patterns at the Dutch Tax and Customs Administration" Speaker: Brian Lokhorst (Dutch Tax and Customs Administration)
  • "Introducing Transactions to REST" Speaker: Michael Musgrove (Red Hat)
  • "Event-Driven SOA in a Dredging Environment" Speaker: Alexander den Hartog (Royal Boskalis Westminster N.V.) and Linda Terlouw (ICRIS)
I will publish my findings around these sessions in a next blogpost, or follow me on twitter.

zondag, maart 08, 2009

J-Spring here we come!

Zojuist bericht gehad van de paper-commissie van de NL-JUG dat de inzending van Sander Hoogendoorn en mij is goedgekeurd. Exacte details volgen nog, maar hieronder ons voorstel:

Titel
Pragmatic model driven development in Java with smart use cases and domain driven design

Naam / namen van de spreker(s)
Sander Hoogendoorn, Principal Technology Officer Capgemini
Rody Middelkoop, Technical Evangelist Avisi

Korte omschrijving van de sessie (minimaal 100 woorden)
Model driven development has a promise of high productivity. However, many approaches fail to deliver. Sander Hoogendoorn (Capgemini) and Rody Middelkoop (Avisi) will present a very pragmatic approach to model driven development, based on modeling smart use cases and domain models in UML. The speakers elaborate enthusiastically on this approach and the techniques used, and they will model and generate a fully deployable Java applications live on stage!

Niveau (beginner / intermediate / advanced)
Intermediate

Track waarbinnen deze kan worden geplaatst (zie boven)
This highly interactive session can be placed in the New & Cool, Methodology or Tools tracks.

Vereiste voorkennis
Although some knowledge around use cases, domain driven design and Java is preferable (for everyone), it is not required for this session.

Een structurele beschrijving van de opbouw van de presentatie
In this unstable economy, organizations target software development at shorter time-to-market and high productivity. Model driven development has a promise of raising productivity in projects. However, many approach fail to deliver this promise. During this high-paced, interactive talk speakers Sander Hoogendoorn (Principal Technology Officer and agile thought leader at Capgemini) and Rody Middelkoop (Technical evangelist at Avisi, and lecturer at the Hogeschool Arnhem Nijmegen) share their very pragmatic approach to delivering software using model driven development. First, Sander will elaborate on the modeling and code generation approach, that relies on smart use cases and smart use case stereotype, a solid software architecture and domain driven design. Next, Rody will take the stage and demonstrate how this approach effects building Java web applications, generating a fully deployable Java EAR live on stage! Although other architectures and frameworks can be applied, Rody will use open source Java frameworks such as Ant, FreeMarker, Struts2, Spring and JPA/Hibernate3.

woensdag, maart 04, 2009

Software AND Service

Last February I represented Avisi at a SAAS conference in Zoetermeer. It went well and afterwards we were informed that the session was rewarded as one of the best presentations at the conference.

Highlights of the presentation:
  • What is SaaS (tagcloud)
  • Why SaaS?
  • 10 Questions to ask your SaaS-supplier?
  • Avisi's vision on SaaS: Software AND Service.

If you want to re-experience the session please visit: http://www.slideshare.net/rodym/Saas-1059030 and http://avisi.nl/pages/nieuws/avisi-kijkt-terug-op-een-succesvol-saas-congres.php. Next station on the conference-trip is a session at the J-Spring 2009, I did a sessionproposal with Sander Hoogendoorn on Pragmatic Model Driven Java Development, let's hope we can do our presentation there.

dinsdag, februari 10, 2009

Generating Java with Tobago MDA

In the past two years we have been investigating several alternatives to kick start our Java applications. Most important requirements for the kickstart-tools for use were:
  • Model based, we prefer UML
  • Adjustible and flexible stack so other frameworks can be applied
  • Code quality equal to our handwritten code quality
  • Based on Ant, rather than Maven2

After having looked at JBoss Seam and AppFuse, we tried CapGemini’s Tobago MDA. The generator comes with a simple but powerful objectmodel and an easy to understand templating mechanism. Tobago is able to parse an UML XMI metamodel containing smart use cases and a UML class diagram containing business classes, value types and smart reference and applies our own templates (instead of the ADP templates for .NET projects) to the parsed metamodel.

In January 2009 we did present our own Java templates which took me about two months to develop. We applied these templates to two small business cases, and the results are promising: we can generate a fully deployable Java EAR using several open source Java frameworks like Ant, Freemarker, Struts2, Spring and JPA/Hibernate3. The templates implement several patterns from the ADP like the Smart Reference, Factories and Value Objects which are used in components like EJB3 business services and JPA business entities.






When you are interested in our progress, please keep up with the wiki http://wiki.trinidadplatform.org/GeneratingJava.ashx or visit the Avisi website http://www.avisi.nl/.

In reference to the previous post I can announce the I am working together with Sander Hoogendoorn on a proposal for several Java oriented conferences in the Benelux, so we can share our experience with other developers.

woensdag, november 12, 2008

JFall: "Elk nadeel hep zun voordeel"

Although I promised myself to blog in English to train myself in using the language and to offer non-Dutch-speaking people to read the posts, I have no better way of expressing my feelings about the second NL-JUG conference this year, the fall edition, JFall. It isn't even proper Dutch, but it is based on a quote from Johan Cruijf who obviously was a better soccerplayer than he spoke Dutch. Let's say that 'every con has its pro'.

Let's face the facts, we do have a lot of qualified Java developers in Holland. Lots of them were visiting the fall edition of the NL-JUG event and some of them were presenters for the sessions. Despite all the available ingredients for a nice conference day, I wasn't all that great for me.

Con: Most sessions were to basic or to badly presented (I'll make an exception for Jeroen Benckhuijsen)
Pro: I'm thinking of being one of the speakers for the next conference to show that I can do better. I have about half a year to think about a nice subject which I do like myself.

Con: The number of attendants is maximized on 1000, which means that 't Spant is quiet busy when changing sessions or having lunch.
Pro: I see a recurring group of attendants which makes the conference a nice social event to meet with former colleages and potential partners for one of my employers. Also I have to thank the NLJUG-board for inviting 70 HAN students to the conference.

Con: The conference aimed to much at JavaFXScript and Flex.
Pro: Adobe brought nice goodies and some 'representative' people (I say one word: nurse) with good communication skills, my kids are happy with the little duckies that can be used in the bathtub.

Conclusion: you can whine and be a pessimist, one can see chances and improve and be an optimist. For now I am optimist, hoping that the next conferences will have less cons and more pros.

dinsdag, oktober 21, 2008

Model driven development of Java Web Application

At Avisi, I have been experimenting with the development of Java webapplications based on UML. UML in, deployable Java app out. With thanks to the Advanced Develivery Platform (ADP) of CapGemini, we are allowed to use Tobago MDA, a tool which enabled model driven developement. Tobago takes an XMI 1.1 compliant UML model (smart use cases and a domain model) and builds an internal object-tree on which you can run several templates to generate all kinds of files.

For the last two weeks I have been developing templates for Tobago which enables the generation of a Java webapplication based on the stack we use at Avisi: Freemarker, Sitemesh, Struts2, Spring, JPA Entities en JBoss appserver. We use a standard Ant build.xml, standard Eclipse-project (which by the way can be generated too) and some standard markup templates for Freemarker/Sitemesh.
  1. Create a UML-project in Enterprise Architect and model smart use cases and a domain model. No platformspecific types are used, these are mapped within the templates.




  2. Export the UML project as XMI
  3. Create/Generate an Eclipse project with empty folders/packages and predefined build.xml and markup-templates for Freemarker/Sitemesh decoration.
  4. Import the XMI-file into Tobago MDA
  5. Generate sources using Tobago templates for Freemarker pages, Struts2 Action classes, Spring applicationContext.xml, EJB3 Stateless Session Beans for Services/DAO and JPA Entities.

    package nl.$Class.Model.Name.Lower$.dao;

    import javax.ejb.Local;
    import nl.$Class.Model.Name.Lower$.model.$Class.Name$;
    import java.util.List;

    @Local
    public interface $Class.Name$Dao {
    void create($Class.Name$ $Class.Name.Lower$);
    void save($Class.Name$ $Class.Name.Lower$);
    void remove($Class.Name$ $Class.Name.Lower$);
    void remove(Long id);
    $Class.Name$ find(Long id);
    List<$Class.Name$> findByName(String name);
    List<$Class.Name$> findAll();
    }

  6. Run build.xml
  7. Deploy war on JBoss 4.









In the first phase (which I've just completed) we are able to generate CRUD-functionality, in the next phases we are implementing security, validation (using Value Types and Smart References) and master-detail relations. The last thing we want to investigate is the possibility to support process-oriented design (like flowcharts) using activity- or state-chart diagrams. For now we are happy with the results, which in the future will possibly presented in some other blogs, seminars or conferences.