3rd International SOA Symposium makes Berlin 2010’s capital of SOA

The SOA Symposium is the world’s largest SOA event, organized by bestselling book author Thomas Erl. In recent years, the event took place in Netherlands. This year Berlin is hosting the “3rd SOA Symposium and 2nd Cloud Symposium” on October 5 and 6 2010.


A look back at last year’s SOA Symposium
I attended the event last year as a speaker and was impressed by the depth and practical relevance of the presentations by Dirk Krafzig, Nicolai Josuttis, Joe McKendrick and others. Not too often the leading SOA thought leaders gather at one place so they seized the opportunity and created the SOA Manifesto.
As well Thomas Erl, Anne Thomas Manes and the audience exorcised the over-hyped “Evil SOA” of false marketing promises as a further development of Anne’s famous blog entry “SOA is dead”. After the dramatic departure of Evil SOA, they embraced the “Good SOA”, which emphasizes the importance of thorough architectural efforts and governance.

I am curious about the events Thomas plans for this year.


For me personally, it was a very succesful event: Torsten Winterberg, Clemens Utschig and myself presented on “Next Generation SOA” in a packed hall. As well I got introduced to a representative of a customer of HP, which led to a great opportunity to work in Amsterdam this spring.


Highlights of this year’s tracks
As a member of the SOA Symposium Group I am familiar with this year’s program and track structure – and I have to say that it looks very promising! I am happy that “BPM and SOA” is a very strong track investigating enterprise modeling aspects. The track “BPM, BPMN and Service-Orientation” will be the first track on a conference that will discuss project experience with the breakthrough version of the process modeling language BPMN 2.0 – which allows for directly executable process models.

BPMN 2.0 and current cloud solutions are examples of how SOA and BPM leave the agitated top of the hype curve and move to proven approaches that are applied in enterprise level efforts I start to see at large companies. Discussions change from trying to grasp hot topics such as ESB and SCA to sharing real life solutions to concrete project problems: More and more people are actually exposed to SOA challenges and need design guidelines and best practices. The track on SOA Patterns & Practices reflects this and has a great potential to deepen shared understanding of solutions since presenters are forced to talk in a well structured way about proven designs.

As well we made sure that the conference is not only relevant for technical people, SOA/BPM developers and architects. For C-Level executives and other business stakeholders who want to learn about and discuss latest and freshest trends there are specific tracks such as “Business of SOA”.


Here is the list of all tracks:

  • SOA Architecture & Design
  • SOA Governance
  • Business of SOA
  • BPM, BPMN and Service-Orientation
  • Modeling from Services to the Enterprise
  • Real World SOA Case Studies
  • Real World Cloud Computing Case Studies
  • Cloud Computing Architecture, Standards & Technologies
  • REST and Service-Orientation in Practice
  • SOA Patterns & Practices
  • Modern ESB and Middleware
  • Semantic Web
  • SOA & BPM
  • Business of Cloud Computing
  • Cloud Computing Governance, Policies & Security


Descriptions of the tracks at the call for papers section.

Looking forward meeting you in October!

First experience with BPMN 2.0 in Oracle BPM Studio 11g

I gave a live demo of BPM Studio at JAX 2010 conference for which I created an example BPMN 2.0 process. Here is my experience. Below follow some tips, if you plan using the tool. For a general introduction of BPM Studio, see BPM Studio intro on this blog

Data Assignment

I had all WSDLs and XSDs ready based on work for a BPEL based showcase by OPITZ Consulting. It was a breeze to make the process aware of the data types and WSDLs. To create a process with the respective BPMN activities and the data transformations was considerably faster and more fun than in BPEL Designer. In the latter you spend a lot of time in the BPEL assign wizard, where you to drill down into a sub wizard for each attribute. In BPM Studio you just drag all data you need for one process step from the data section. The following picture is based on an Oracle slide on gives an indication of the experience:

You can see how one single wizard can be used to create the mappings very fast: To create an activity, assign the respective service by choosing a WSDL and assigning the data for input and output is a matter of maybe one to two minutes.
 

Decisions

Decisions after a process step are modeled as connectors. The decision rule is an implementation detail of this connection. You can use XPath or a new, more basic syntax: CreditSum = 2000. CreditSum must be a predefined variable. It would be great if you could browse all variables to prevent from typos.
 

Sub Process

Then I used a sub process to express some implementation details of a process step. You get the idea from this picture, again from an Oracle slide:

This opens an interesting design discussion: In BPEL, this would be a scope or a small BPEL process called by the main process. Now we can embed a small set of coherent activities that belong to a logical process step inside a BPMN sub process. You can drill into or leave it collapsed.

It is worth a more deeply discussion on where to put such details: In a sub process, on SCA level through mediators or in a BPMN process called by the main process (the latter would resemble the way we used to do it with BPEL). Note that on the current release I had some fiddling to position the sub process in order to make it look good both collapsed and expanded, since the size of the lane the sub process resides in is fixed.

SCA and BPMN

It is wise to not bind BPMN activities to concrete services but to Mediator Services. You can use these mediators for ESB functionality as an intermediary between the BPMN process and the concrete service. It is very easy to create such intermediaries and you gain

  • loose coupling
  • robustness of the process if changes occur on service level and
  • flexibility for introducing routing and data transformations from and to a canonical data model.
  • If you attach concrete WSDLs to activities in BPMN model, the SCA view (in “composite.xml”) gets updated automatically.

    Tips for your project

    Play with the tool, create a small concrete process from your domain. Discuss it with your peers. Do not start a critical, large BPM project in the first weeks. Instead make sure to stay successful through small iterations of modeling, learning, getting acquainted, putting it in production, let a small group of end users experience with it. Learn from them in order to create workflows that are human friendly and not use them as asynchronous services. Take the objections of your IT peers seriously (“we don’t have the skills?” “How to operate it?”). Manage the expectations from management and business stakeholders. Contact Oracle or partners to understand what you can do now and the roadmap for enhancements.

    This is just a start, more to follow.

    Oracle to show SOA middleware on a prepackaged machine at OOW 2010

    When I was at SUN HQ three years ago, one of the most thought-provoking discussion was on middleware in hardware.

    At OOW 2008 Oracle Exadata 1 – the database on a preconfigured optimized server – emerged from the ground behind Larry on his key-note speech with lightning and thunder. At OOW 2009 I was looking at Oracle Exadata 2, yet, the sensation I wished for was SOA Suite on such a machine (a bit selfish, I admit ;-)!

    Well, it seems at OOW 2010 Larry will present this:

    From the-larry-ellison-interview-can-that-guy-in-ironman-2-whip-ibm-in-real-life:

    “He plans to unveil at least two new appliances in September, when the company holds its annual Oracle World customer conference in San Francisco, a gathering that had some 40,000 attendees last year, making it the world’s biggest tech users conference.

    The machine that will likely get the most attention is one that will run Oracle’s yet-to-be-released next-generation suite of business management programs, dubbed Fusion Apps, which will compete with SAP’s existing software line.

    That appliance will include servers, networking equipment and storage gear along with a database, middleware and the Fusion Apps programs. Oracle has spent five years and billions of dollars developing the software, which helps businesses manage accounting, human resources, sales and marketing as well as more specialized tasks for companies in industries including financial services, telecommunications, healthcare and retailing.

    Ellison says he will also show off an appliance that runs Oracle’s so-called middleware — the plumbing of a data center’s software network, performing tasks such as helping various computer systems communicate with each other.”

    The benefit could be preconfigured middleware and DB, leading to dramatic performance boosts, a very welcome feature for ever larger middleware solutions. This new appliance will strengthen momentum towards holistic, enterprise level BPM / integration architectures built on the Oracle platform. I am curious how this story evolves…

    BPMN 2.0 in Oracle BPM Suite: The future of BPM starts now

    Last week I attended a cool preview workshop held by Clemens Utschig Utschig from Oracle HQ on Oracle’s BPMN 2.0 tool “BPM Studio”, which is part of the Oracle BPM Suite.

    I had to wait before I can talk about until it is publicly available. Now you can get it here:

    BPM Studio in JDeveloper: http://www.oracle.com/technology/software/products/jdev/htdocs/soft11.html. Info on how to set up the whole BPM Suite is here: http://otn.oracle.com/soa

    The usability and ease to get started are impressive. In the business view analysts can intuitively start modeling, then developers refine in their own, more technical view.

    The BPM Studio sets itself apart from pure play BPMN 2.0 tools by being seamlessly integrated inside a holistic SOA / BPM toolset: BPMN models are placed in SCA-Composites in SOA Suite 11g. This allows to abstract away the complexities of SOA integration aspects from business process aspects. For UIs in BPMN tasks, you have the richness of ADF 11g based Frontends.

    With BPM Studio we architects have a new modeling and development IDE that gives us interesting design challenges to grasp and elaborate, since many things BPMN 2.0 are different from good ol’ BPEL. For example, for simple transformations, you don’t use BPEL “assign” any more, but add the transformation directly to the service call. There is much less XPath involved. And, there is no translation from model to BPEL code anymore, so the awkward process model to BPEL roundtrip, which never really worked as well as it looked on marketing slides, is obsolete: With BPMN 2.0 “the model is the code”. Internally, Oracle uses the same runtime engine which they also use for BPEL, so on operating level many things stay similar to BPEL based processes.  

    BPEL itself will stay relevant for integration processes that are exposed as services. These BPEL based services will be called by a BPMN process. They are then an implementation detail of a process step. So BPMN is for everything workflow/business process while BPEL will remain strong for non trivial integration scenarios.

    Now, these are great times to start the journey into BPM!

    Some tips:

    • Start Projects smoothly, with initial processes being not overly complex and not using the more esoteric areas of BPMN, to manage the learning path and to stay successful with each iteration.
    • Verify non functional requirements by conducting performance and load tests early.
    • As mentioned above, separate all technical integration logic into SOA Suite or Oracle Service Bus.
    • Plan some time to understand what you get from Oracle in terms of ADF based user interfaces for tasks and how to adapt this to your functional requirements and to your look and feel guidelines
    • And – start playing with the tool, have fun share your experience!

     I will use BPM Studio in the next weeks and keep you aligned.

    The SOA Manifesto: Business Value and Architecture First

    The overloaded paradigm matrix of heterogeneous understandings of “what SOA really is” demanded a consolidation – given a plethora of different guidelines, principles and best practices. Even if you look at the closed Thomas Erl universe of SOA books it is a daunting task for the busy architect to grasp the essence and derive well-defined corridors for his project.

    Thus, a group of SOA representatives from vendors gathered with analysts and book authors in Rotterdam last week and worked on the core values and rules for Service Oriented solutions. On Friday 23rd of Oct. they presented their result of hard, sometimes tough collaboration work at the end of the SOA Symposium which is an aggregation of the principles on the basis of a hard earned consensus of some of the main SOA thought leaders: The SOA Manifesto (www.soa-manifesto.org).

    IMG_5643

     

     

     

     

     

     

    The debate has started

    As you could have anticipated, a heated debate has started in blogosphere already with flames rising high – some pro, many very loudly against the manifesto as well as against SOA in general. Opposing many of the complaints in the posts, I think it is good that the manifesto was written by both vendor representatives and independent thought leaders: Both could not get their individual beliefs published but they needed to find a compromise – and from what I observed they worked very hard on finding that compromise – so unlike many say, the manifesto is not a vendor’s view! It states clearly you cannot buy SOA through purchasing an ESB! On the other hand, it is not a hard core REST proponents view as well. What I like is that the result is still not lame. For me, the following aspects bring real value by their emphasis on aspects that distinguish a successful SOA initiative from a flawed one.

    The SOA Manifesto emphasises

  • diverse social and cultural aspects that should be respected. This notion demands thorough management of change
  • diverse solutions based on the context. I personally believe this is key and that along this notion the term SOA will diversify in the next years. Similar to the “forces” in good old object design pattern, the context should determine designs, tools and the degree of virtualization! The decision should be justified along criteria such as requirements for agility, reuse and criticality and the organizational level for which the solution is built: You might not need in ESB in some integration optimization for a local department. On cross departmental / enterprise level it could be well justified
  • business value first
  • understanding the conflict between the interest of the project manager and the interest of the strategic goals of the overall enterprise (the problem is that the latter often has no stakeholder!)
  • a strong architectural standpoint – not tools – at the center of successful service orientation
  • loose coupling and separation of concerns (oddly the manifesto is never directly mentioning both, but they are the underlying principles that shine through the manifesto).

  • What I miss is an even stronger argument that Service Orientation implies organizational change – Service Orientation is the antidote against silo thinking! This is hinted at in “Recognize that SOA ultimately demands change on many levels.” – unfortunately the levels (technical and organizational) are not mentioned.

    The SOA Manifesto is another important starting point

    The SOA Manifesto has the potential to frame a constructive discussion on how to shape the future of enterprise computing: SOA (or whatever we will name the ongoing evolution from objects to components to services to whatever, maybe services that have event based interfaces and are used by more and more agile processes) will further evolve and architects will learn to understand when best to apply which degree of loose coupling – we don’t need SOA and loose coupling everywhere! I see Service Orientation as an architectural pattern that only applies when certain forces are prevailing. Thus I appreciate that the manifesto does not ask to “SOAficate” the whole IT. Some applications are to stay untouched with all their point to point connections and it should be recognized that loose coupling comes with a price tag. 

    A short discussion with the group

    To delve a bit into the text and its making process, here are some thoughts that stem from discussions with my good friend Clemens Utschig-Utschig, as well as with Dirk Krafzig, Nicolai Josuttis, Dave Chappel – all ground braking book authors, Anne Thomas Manes – “SOA is dead – long live services” and some of the other authors. The conversation took place right after the presentation of the SOA Manifesto on Friday evening in the exhibition hall.

    After reading the printed manifesto, I congratulated the group for the simple and easy to understand language and this compliment was well received, you could see that this was a major concern and goal. Yet, I said, for me the only sentence hard to grasp was the third value:

    Intrinsic interoperability over custom integration

    What actually is “intrinsic interoperability”?

    I learned from our discussion that a service has intrinsic interoperability if it is easy to use, it’s semantic is clear and there is as little integration hassle (Adapters, Transformations etc.) as possible. Anne added that a REST based service has better intrinsic interoperability than a WSDL based service because the technology footprint is smaller. I would agree, but regard REST applicable in other context than WSDL, so an architectural decision should take non functional requirements into account as well.

    To deeper understand intrinsic interoperability Clemens later emphasized the importance of a well established canonical data model that is used across services and further conventions that make the service easy to understand and use.

    … and what is a service that needs custom integration?

    Asked another way: What is a not so well-behaved service? Here, Anne dismissed extrinsic services that are not easily reusable: A typical example is a proprietary API, either of a packaged application or of a legacy system that is exposed through a Web Service layer. This design tightly couples consumers of services to implementation details and thus needs lots of further custom integration if a consumer needs that bit of functionality: Data must be mapped, implementation-level IDs must be resolved etc. Anne referred to such services on top of existing APIs as “lipstick on a pig”.

    I like that metaphor as I regard a respective “right-click service” based on existing APIs as one of the most fundamental anti patterns in naïve “SOA” projects and as one of the main architectural root courses for failure of solutions in the long-term because it does nothing to prevent from a badly maintainable system landscape and lead to a tightly coupled design. This shows that with the sole application of WS-Standards nothing is achieved, you just have a new interface technology (WSDL, SOAP instead of CORBA, EJB, FTP or COBOL copy books) on top of the old, often, not always, messy systems. Such pseudo services, if directly exposed for public usage are the latest “Emperor’s New Clothes” – transparent “Ugly SOA” wardrobe on the still naked king.

    A way to deal with API-Service is to understand them as “Private Services” – implementation details of Business Oriented “Public Services”, the latter focusing on the consumers and its needs, completely abstracting from underlying proprietary data schemes, programming languages, platforms etc. The trick is to never expose those details of Private Services, but translate them to the needs of the public interface behind a service facade. I think this “Public/Private Service Pattern” serves well the discussed value Intrinsic interoperability over custom integration.

    And now: Best Wishes!

    I wish for the SOA Manifesto to serve as a guiding foundation for many proposals and solutions in SOA space – similarly as the Agile Manifesto served beautifully well for many to start thinking Agile.

    Further Reading

    OOW SOA Gems: Larry explains SOA and BPM

    In his keynote Larry Ellison nicely explains SOA in the context of Fusion Applications. His point is that customers do not want to replace exisiting apps, but integrate with them. He even used the word BPEL ;-). He made a very interresting point: A packaged application is no longer closed, but through usage of SOA middleware at its core opens itself up to integrate internally with other custom or third party applications.

    Larry as well showed a nice slide on the BPM architecture with processes orchestrating services. He used this to show that Fusion Application is not only customizable through integrating with other applications via SOA services but as well through changes at the business process layer.

    My main conclusion is that with Fusion Apps a packaged application is a white box where they used to be black boxes. This can open up tremendous opportunities for integrators when they offer creating a custom application based on Fusion Application using BPEL, ADF, SCA etc. creating the UIs, workflows and processes the customer needs integrating with existing systems he has in place.

    OOW SOA Gems: SCA is the J2EE of SOA

    Here are some takeaways from Greg Pavlik’s and Clemens Utschig’s outstanding and inspiring presentation yesterday at Oracle Open World on key architectural aspects of Oracle SOA Suite 11.

    Clemens and Greg spoke about many aspects from which I share some talking points on Service Component Architecture – SCA.
    SCA is still in the standardization process, probably it will take until 2010 to be a final OASIS Standard. Greg made the analogy that SCA is to integration what J2EE was to Java programming. The key umbrella artifact in SCA, the “Composite” is analogous to an EAR in J2EE.

    SCA Eventing

    WSDL is a push based service interface and the SCA standard currently is built around classic WSDL based services; Thus, SCA has no publish subscribe (pub sub) functionality. Oracle realized this as a limitation. Thus, to broaden usage of SCA Oracle introduces events into SCA as another endpoint paradigm to the “Event Delivery Network” (EDN). I think this is a smart move – a lightweight means to communicate from applications with BPEL processes is requirement I often ran into at projects. To make sure events are part of the standard asap, Oracle works with the standard committee on “SCA Eventing”. Of course, customers can leave it out when they want to stick to the standard while it is evolving.

    SCA Eventing and loose coupling

    Designed the right way, SCA events can further enable decoupling/loose coupling when compared to WSDL based endpoints because events free from the need for explicit wiring between services: You just exchange lightweight events with a minimum of technical communication overhead. For example, a WSDL based service can have multiple WSDL parts, while events are limited to just one part.

    SCA beyond “SOA Suite classic”

    Clemens showed Java Spring exposed in a SCA composite and now Oracle looks to create SCA layers for the integration platform Tuxedo and for C based logic!

    I think this is great because more and more SCA becomes the core logic exposure, easily exposing Tuxedo or C based pieces of logic as “first class citizens in SCA world” – and, if carefully exposed through well designed service interfaces – in a SOA world.

    Clemens showed all concepts live, so you could feel the need in the room to open JDeveoloper and play with 11g.

    Tips for your initial SOA project

    I was asked for advice at a SOA project that starts soon based on Oracle middleware. This is what I came up with as my most critical things to consider at the start of a project. This list is by no means complete and you are welcome to add your top 5.

    – It is all too easy to underestimate the efforts of creating a initial working prototype and the reference architecture and then run into large delays because things that seemed so easy just don’t work the way anticipated or the solution proves to be just too slow! So make sure you have the time for try and error until the reference architecture stabilizes and you have solutions for every critical aspect! If this is one of your first projects, don’t get into stress from the beginning due to delivery dates but take some weeks to get a solid reference implementation.

    – It is amazing how some things on configuration side are much less intuitive and more complicated than anticipated. Examples for areas where you can spend days understanding the nitty gritty details are
    – configuration to optimize performance
    – asynch services
    – timeouts
    Thus it is advisable to have at least one very technical and experienced expert who has deep configuration skills in the team, either from the middleware vendor, from a system integrator or from your own team. Always strange things happen, especially in the beginning and you never know, when you are not very experienced, whether it is a programming mistake or a bug. Fast cycles of understanding, resolving, knowing how to search bugs and solutions in the documentation and fixing it is key.

    – for skills in the team: Check you have this type of main skills: Architectural / design, technology and tool expertise.
    Make sure you have advanced XML skills: XML Schema, WSDL, especially namespaces, XPath, BPEL. Everybody who is exposed to BPEL and XML is lost without deep understanding because of the untyped, declarative nature of XML things go wrong late after compilation and are hard to track down: “80% of the problems are namespace problems”

    – Make performance tests on performance critical aspects early. XML is potentially large and can blow up memory and performance easily. XQuery and Database are means to deal with that. And, even way faster is good old STAX parsing. Again, it takes time to find the bottlenecks and feasible solutions.

    – determine main architectural attributes such as the level of loose coupling and make sure everybody buys into them and you map designs to these attributes and guiding principles. This determines efforts and tools.

    – don’t be too much in love with tools. Rather have less tools: The complexity rises with each tool and platform drastically and you might end kicking out tools that seemed fantastic but cause problems in the concert of collaborating tools. This is a hard earned lesson 😉

    – On change management and project culture many peers have written profoundly, this is important but too broad for this short checklist.

    You want to sell SOA? Speak COBOL!

    If we are lucky, we “SOA Architects” are faced with a rather modern deployment of existing applications, based on platforms such as Java, .Net or Oracle Forms. Here, the upgrade to a Service Oriented Architecture is a natural and gradual one, programmers and architects of the existing systems are used to think in terms of components, which are close (or predecessors) to services. Thus, you can quite easily sell SOA to the stakeholders of this type of environment as a mere “upgrade” to the latest technology. For example, establishing an automated workflow by introducing BPEL on top of “servicized” EJBs will provide quick wins. On developer and architect level you have people who are thinking in terms of interfaces, have XML skills and an interest in learning the next new thing. It is this type of environment we see SOA maturing and succeeding.

    Yet, where SOA gets really interesting, in broad enterprise application landscapes, things are most often different. The Mighty Host is at the center of everything. Some years ago I read an assessment that 80% of the business critical code in the world’s large enterprises and government ITs is still written in COBOL. I don’t think this number has drastically shrinked since!

    To approach host / COBOL developers with some SOA slides easily makes you look like some kind of freaky alien who speaks in front of humans: They know what they are doing because they are doing it that way for many many years – and it works!

    The only question remains whether you are seen as a harmless alien, someone they can just ignore because he has not enough influence to actually change something. Or whether you are a recognized as a potential threat to the way IT always has has worked here. Then fear is what you will have to deal with. Many people in this environment – developers, architects, even business people live in the culture of job controls and COBOL copy books where, if you need some data from an other system you will find an easy ad hoc way. We have to deal with it: People in this environment don’t want change and will have very good points in why everything is good as it is.

    Technically, SOA and mainframes can come together, the implementation culture, language and the needed skills are worlds apart.

    To address this it is important to understand the audience you talk to, the culture, the language – and you should be able to speak this language. Ideally, you show them that you can solve problems in their way too, for example by creating some job control based solution. This way gaining trust, reducing alienation and establish a real relationship between people who understand each others way of thinking.

    Then you can start to think about how to sell loose coupling to people who embrace point to point connections…

    Meet Thomas Erl, Dirk Krafzig and many more @SOA Symposium in Rotterdam

    I am looking forward to the SOA Symposium! We will give a preview together with Thomas Erl to the upcoming book “Next Generation SOA and meet David Chappel and Dirk Krafzig. This symposium features the creme de la creme in today’s SOA world, I am also happy that a hero of the 90ies, Grady Booch is there too! I am curious what he has to say on SOA…