|
SYS-CON Magazines
|
Top Three Links You Must Click On
Service-Oriented Architecture Best Practices for Building SOA Applications
Seven Steps to SOA Adoption - Part Two: Rich GUIs, monitoring, security, and performance
By: Dave Shaffer
Oct. 25, 2006 12:15 PM
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:
Rich User Interfaces 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 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 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 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. Reader Feedback: Page 1 of 1
Subscribe to our RSS feeds now and receive the next article instantly!
Subscribe to the World's Most Powerful Newsletters
|
|
||||||||||||||||||||||||||||||||||