These are the talks I'll be giving for the Business and Technology Summit on November 3 and 4 in Bangalore, India.
Talk 1: 10 Things Software Architects Should Know
The speaker contributed to the 2009 O’Reilly book 97 Things Every Software Architect Should Know. This talk continues in the spirit of that book, offering ten axioms to help guide the creation of a stable and fluid software architecture.
The ten axioms presented in this talk address the fact that software architects must be versatile, have broad and deep technical knowledge, and be good communicators and team builders. Staying current with new and emerging technology and frameworks, communicating effectively with development teams and executives, managing the “ilities” and complexity in design, working with project managers, showing leadership, and balancing all of these competing needs can be tricky. To help light the way, axioms range from the abstract (“The Importance of Consommé”), to the practical (“Design at the Boundaries”), to the controversial and counter-intuitive (“Don’t Be a Problem Solver”).
This talk will provide architects with innovative and accepted strategies for framing the business problem, working with developers, and outlining a solution architecture.
The simple, clear, and fun axioms presented in this talk will help software architects develop their role successfully within their organizations and create beautiful, sustainable, workable software architectures.
Talk 2: Succeeding with SOA: Designing and Building SOA in the Real World
SOA is alive and well, although its face may have changed somewhat in the aftermath of the economic upheaval and considerable unqualified hype. This session walks developers and architects through the speaker’s experience in designing and building SOA at a multi-billion dollar US retail company and highlights some of the conclusions outlined in his book Java SOA Cookbook. While there are many answers to the questions surrounding SOA, this talk will give you one architect’s perspective, and the tools to make architectural decisions for yourself.
The talk delves into the many choices, trade-offs, disillusionment, setbacks, and victories in the real-world application of SOA. Specifically, we’ll look at acquiring tools, starting with open source and vendor selection processes, modernizing legacy systems, sharing services between different presentation channels, managing service rollout, versioning services, and demonstrating how ESB, BPM, and BAM fit into the architecture.
Developers and architects will come away from this presentation armed with real-world tools, and strategies for dealing with SOA-specific challenges on a strategic and technical level. We’ll address what's hype and what's real in SOA, the use of policies, generated code, and making architectural choices to succeed with SOA.
Talk 3: Designing and Implementing RESTful Web Services
Pre-Requisites: Attendees should have an understanding of web protocols and Java.
Audience Level: Intermediate
Building RESTful web services has become a popular, lightweight way to develop applications and APIs. In this talk you’ll discover what REST is, why it’s an important alternative to SOAP-based web services, and how to build a working RESTful application. We’ll examine the foundations of RESTful principles, including HATEOS (Hypertext as the Engine of Application State), and then quickly move to the practical aspects of building and designing RESTful applications so developers can walk away ready to start building.
To create real REST applications, you need a solid understanding of how to design RESTful URIs, designing Resources, and building Representations using HTML, XML, the Atom Publishing Protocol, and JSON—all of which this session provides.
The session will include examples from the new JAX-RS 1.0 API for Java, which is scheduled for inclusion in Java EE 6. The talk culminates in a real-world example from Java SOA Cookbook using Google’s RESTful API for Financials, with notes on how some Web 2.0 sites such as LinkedIn are using REST.
Talk 4: Up the Architecture Stack with SPEaRS Architecture: Services, Processes, Events, Rules, Spaces
Computing applications move “up the stack” by abstraction over time: low-level languages are abstracted into managed platforms, which are becoming increasingly virtualized; cloud computing is attempting to abstract the data center. With Web 2.0, we continued in this mode—instead of just writing applications with an API to create a web site, the web sites themselves have become the API. But our architectural concepts remain somewhat low-level; all too often we ignore this idea in architecture—instead of moving up the stack, we rip and replace one paradigm with another.
This talk proposes a new kind of architecture that moves up the stack. Instead of switching out our architectural paradigms such as SOA, EDA, and Spaces, we can combine the best of each to create a more flexible, sustainable model.
Based on his recent design and architecture work, the speaker distills these ideas into a new architectural concept called SPEaRS, combining SOA, Process-Oriented Architecture, Event-Driven Architecture, Rules, and Spaces to move up the architecture stack. What emerges is a proposed generalized architectural pattern to meet the computing challenges of tomorrow.