YOUR FEEDBACK
IBM Buys Its Way Out of Antitrust Trouble
Plato wrote: L.L.Bean was never actually a customer of PSI. At most, they we...
SOA World Conference
Virtualization Conference
$50 Savings Expire June 24, 2008... – Register Today!


2007 West
GOLD SPONSORS:
Active Endpoints
Your SOA Needs BPEL for Orchestration
BEA
Virtualized SOA: Adaptive Infrastructure for Demanding Applications
Nexaweb
Overcoming Bandwidth Challenges with Nexaweb
TIBCO
What is Service Virtualization?
SILVER SPONSORS:
WSO2
Using Web Services Technologies and FOSS Solutions
Click For 2007 East
Event Webcasts

2008 East
PLATINUM SPONSORS:
Appcelerator
Think Fast: Accelerate AJAX Development with Appcelerator
GOLD SPONSORS:
DreamFace Interactive
The Ultimate Framework for Creating Personalized Web 2.0 Mashups
ICEsoft
AJAX and Social Computing for the Enterprise
Kaazing
Enterprise Comet: Real–Time, Real–Time, or Real–Time Web 2.0?
Nexaweb
Now Playing: Desktop Apps in the Browser!
Sun
jMaki as an AJAX Mashup Framework
POWER PANELS:
The Business Value
of RIAs
What Lies Beyond AJAX?
KEYNOTES:
Douglas Crockford
Can We Fix the Web?
Anthony Franco
2008: The Year of the RIA
Click For 2007 Event Webcasts
SOA World Editorial - Discovering Dr. Dolittle
From the title, you might be thinking that I'm about to start this month's editorial with a reference to talking to animals and somehow tie that into SOA. Instead, what I actually would like to talk about is the pushmi-pullyu (I got the spelling from Wikipedia; I always thought it was 'push-me pull
SYS-CON.TV
TODAY'S TOP SOA & WEBSERVICES LINKS


Best Practices for Building SOA Applications
Seven Steps to SOA Adoption - Part Two: Rich GUIs, monitoring, security, and performance

Digg This!

Page 1 of 2   next page »

This article is the second part of a two-part series covering best practices for building Service Oriented Architecture (SOA) applications. The following are the seven key steps for effective SOA adoption:

  1. Create a portfolio of services
  2. Define connectivity and messaging interfaces
  3. Process orchestration, workflow, and rules
  4. Rich user interfaces
  5. Business activity monitoring
  6. Security and management
  7. Performance and scalability
In the first article, we described why adopting an SOA is valuable but can be difficult. We also looked in detail at the first three of the seven steps outlined above. In this article we'll focus on the final four steps and look at some "worst practices" - common errors in SOA design and how to avoid them.

Rich User Interfaces
We've seen several generations of UI evolution since the emergence of the Web as an application interface paradigm. Initially, HTTP and HTML provided many benefits for administrators through a thin-client approach, but users were faced with GUIs that were much more primitive than what could be done with thick-client interfaces. With the emergence of rich Asynchronous Java And XML (Ajax)-style interfaces, we are now seeing a truly mature thin-client paradigm.

However, developers often find the complex JavaScript code for user interfaces to be cumbersome, hard-to-debug, and repetitive. In this area, the emergence of Java Server Faces (JSF) frameworks that encapsulate rich dynamic GUI capabilities in reusable components has given developers some new tools to make the development of rich Web GUIs easier.

As Web GUI paradigms evolved, developers were faced with more choices. In our first article, BPEL was discussed as the standard for business process orchestration, and GUI page flows are sometimes considered "orchestrated" interface components. However, BPEL is usually not the right abstraction for page flows. We see JSF and its predecessor, Struts, as being the best way to implement user interface control flow in the Java/J2EE world. BPEL is best for structured flows, but page flows are typically semi-structured or unstructured. Although BPEL is also particularly important when you need to maintain audit trails and when the process strictly controls the order of execution of activities, but GUI flows usually don't require these.

Of course, applications often connect their GUIs to business processes through human worklist interfaces, custom Web interfaces, and portals. BPEL's ability to support Web Services interfaces and transactional interfaces via adapters and WSIF bindings makes it easy to integrate J2EE GUIs and portals with BPEL processes. Standards like WS-Remote portlets and JSR-168 mean that vendors can publish process portlets, such as a worklist editor, in a way that's easy for developers to integrate into a portal of their choice.

Business Activity Monitoring
A common complaint in organizations is that they have lots of data but not enough information. For example, we have a client who described his problem as having "14 terabytes of data but no unified view of our customer." One of the best ways to avoid this problem is to define key performance indicators (KPIs) as early in the SOA design process as possible. KPIs are pieces of information that the organization wants to track, such as the number of business transactions that are processed a day, the number of exceptions that are raised, and the amount of the time it takes to process each step. Because KPIs can change over time, the most effective approach for gathering this information is to instrument processes and IT events with "sensors" that monitor the business transactions. The events can then be fed to business activity monitoring (BAM) dashboards (Figure 1) and custom reporting channels without requiring that process logic be changed.

Once the events are identified, correlated, aggregated, and fed to rich real-time dashboards, an organization achieves what we call the "fusion effect." (Figure 2) This occurs when actionable information informs an organization how to improve its processes, and its agile IT environment lets these changes be implemented efficiently.

Security and Management
Security has become increasingly critical as the perfect storm of information proliferation, regulatory change, and identity theft disclosures have come to pass. Industries such as healthcare and financial services require an unrelenting focus on security as information such as an individual's medical and financial data is passed over a network. Addressing these challenges is particularly complex in a heterogeneous and fast-changing technology environment. Conveniently (and not coincidentally), key standards such as WS-Security have emerged to enable the secure exchange of information between processes and services, even across different technology stacks such as J2EE and Microsoft .NET.

WS-Security specifically provides a standard mechanism for authentication and access control for services, as well as full or partial encryption of message data. WS-Security support is available in Microsoft .NET services, Open Source Web Services frameworks such as Apache Axis, and commercial J2EE toolkits such as Oracle, BEA, and IBM's application servers. It's easy to find information describing how this interoperability works. For example, Microsoft MVP Jesus Rodriguez has code examples on his blog demonstrating WS-Security interoperability between Microsoft WSE 3.0 and Oracle BPEL Process Manager (http://weblogs.asp.net/gsusx/archive/2006/03/22/440881.aspx). Likewise, Security Assertion Markup Language (SAML) provides a standard mechanism for role-based access control and federated identity. Standardizing on WS-Security and SAML (Figure 3) for service interfaces gives an organization much more flexibility in its future technology choices and for secure Web Service interactions with trading partners.

It's also important to extract security requirements out of core services and clients and implement them in a policy-oriented fashion. This results in systems that are dynamic, secure, and auditable. Organizations implementing this approach are able to define external security policies and change them dynamically, without needing to modify services or the clients that call them. This approach is supported by leading Web Services management (WSM) products.

Performance and Scalability
Once security policies are in place, the next step to effective SOA is to focus on the performance and scalability requirements in detail. As ever, the principle of "a stitch in time saves nine" applies. For example, we've seen project teams that used all asynchronous interfaces for their services because the toolkit they were using made that very easy to do. After developing sophisticated processes for handling registration for consumer credit services, the project team did stress tests late in the development lifecycle. They discovered that the overhead of the asynchronous interfaces, which required frequent persistence of the overall process, was such that that their anticipated load could only be supported by an unaffordably large number of CPUs. When such information is discovered so late in the process, the choices are bleak: either increase the budget significantly or re-engineer all the services to use different interfaces - which is a change that will propagate painfully throughout the project.

The best way to avoid this scenario is to do a performance POC early in the development process (even at the design stage) and get some real numbers regarding the size of the systems that are needed to achieve expected loads. By doing this during early prototyping and design stages, potential performance bottlenecks will be uncovered while there's still time to change key design decisions.

Another best practice is to choose carefully among synchronous and asynchronous service interfaces, standards such as WS-Addressing, and custom correlation mechanisms for correlating asynchronous messages. WS-Addressing provides a standard mechanism for correlating asynchronous messages so that system A can send a request to system B, and system B can call back to system A when a response is ready. This kind of asynchronous interface does have a performance cost, but you gain reliability and flexibility because the two systems no longer have to be tightly coupled to each other. Of course, projects have been built on top of asynchronous message-oriented middleware such as IBM MQ Series, TIBCO, and JMS messaging for years. What's new is that the benefits of asynchronous interfaces are now available through standards such as WS-Addressing over protocols such as SOAP over HTTP so that such implementations can cross technology and vendor boundaries more easily.

When considering Web Services as an integration approach, people sometimes worry about XML as a performance bottleneck, and it can be when used inappropriately. However, in general, we don't believe that XML in and of itself presents performance overhead sufficient to rule it out, even for very large load requirements, especially given its many benefits. As when Java emerged to replace C and C++ as a preferred programming language, it takes a little time for design-time and runtime tools to evolve to optimal performance for the latest development approaches. We're now starting to see toolkits for XML processing. These toolkits, such as Oracle XDK, allow operations such as dehydration, XSLT transformations, and BPEL assign activities to be applied while the data remains in an optimized binary format. This avoids the most expensive part of XML processing - serialization and deserialization. For external gateway-style transformations or WS-Security support, hardware devices such as the one created by DataPower (recently acquired by IBM) and software tools such as Forum Vantage XML Accelerator can be useful.

However, there are ways to misuse XML. For example, passing very large documents between services via SOAP requires large amounts of bandwidth, processing time, and memory to serialize and deserialize the documents, even if you can minimize these steps. A preferred approach is to store the documents in a central location (a file system, database, or document management system) and then pass references to the document.



Page 1 of 2   next page »

About Dave Shaffer
Dave Shaffer has been helping customers use the Oracle BPEL Process Manager since 2001, managing implementation projects, providing technical training, and ensuring successful implementations. Prior to joining Oracle, Shaffer was a principal consultant at Collaxa, a managing director at Eleven Acceleration, and manager of a professional services group at Apple Computer.

SOA WORLD LATEST STORIES
Adobe's Kevin Lynch and Microsoft's Scott Guthrie to Keynote AJAX World RIA Conference & Expo
Two of the biggest launches in Rich Internet Application history took place in 2007/2008 when Adobe launched AIR 1.0 in February '08 and Microsoft launched Silverlight (September '07). At the 6th International AJAXWorld RIA Conference & Expo in October SYS-CON Events is delighted to be
SYS-CON's Virtualization Expo Attracts More Delegates Than Gartner
Virtualization has quickly become a staple new concept for enterprise IT. At SYS-CON's 3rd International Virtualization Conference & Expo, held at the Roosevelt Hotel in New York City, June 23-24, we had exceptional speakers with high-quality use cases not only of how virtualization ma
Progress Software Announces Mindreef and IONA Acqusitions at SOA World Conference
Progress Software has acquired Mindreef, a provider of SOA service validation and testing tools. Mindreef will be fully integrated into Progress Software, and will adopt the Progress Software company name. Progress expects to retain most Mindreef product names, however, this will be re
Web 2.0 Journal Case Study: Transcending E-mail as a Platform for Multi-Person Collaboration
E-mail is extremely easy to adopt and use, and lends itself very well to certain types of collaboration. When two people are attempting to collaborate asynchronously, e-mail is usually the best solution. It's certainly far less frustrating than phone tag. But once more people are invol
Elixir Technology (Represented by JNet Direct) Nominated for SYS-CON's "SOA World Magazine Readers' Choice Awards"
Elixir Technology provides Integrated Business Intelligence with Elixir Repertoire - a product for Dashboard, Reporting, Data ETL and Scheduling. Supporting 'Web 2.0' with RESTful Web Services architectural approach on SOA, Elixir Repertoire aims to power the new generation enterprise
Seagull Software Nominated for SYS-CON's "SOA World Magazine Readers' Choice Awards"
Legacy systems typically contain the most critical information in an enterprise, and many organizations have more than one type of legacy platform. LegaSuite Integration is a middleware tool to simplify and accelerate integration of all types legacy data, business logic and screens wit
SUBSCRIBE TO THE WORLD'S MOST POWERFUL NEWSLETTERS
SUBSCRIBE TO OUR RSS FEEDS & GET YOUR SYS-CON NEWS LIVE!
Click to Add our RSS Feeds to the Service of Your Choice:
Google Reader or Homepage Add to My Yahoo! Subscribe with Bloglines Subscribe in NewsGator Online
myFeedster Add to My AOL Subscribe in Rojo Add 'Hugg' to Newsburst from CNET News.com Kinja Digest View Additional SYS-CON Feeds
Publish Your Article! Please send it to editorial(at)sys-con.com!

Advertise on this site! Contact advertising(at)sys-con.com! 201 802-3021

SYS-CON FEATURED WHITEPAPERS


ADS BY GOOGLE