Architecture
TeamSOA brings lessons learned with distributed, high availability services to client's IT
architecture. With over 20 development years around SOA, questions on Quality of Service, Identity
Management, Security, Enterprise Service Buses, Web Service Brokers and Management can be answered from
solid experience, rather than from best guesses and vendor-driven hype. We provide a perspective and a
framework of discussion for many SOA concerns: How much Network policy should be created and enforced on
the endpoints, versus the Network itself? How do you prevent single point of failure? Does "once and
only once" guaranteed delivery suffice, or is "at least once" delivery good enough? Other key challenges
include handling transactions across distributed endpoints, tracking run-time issues when applications
are loosely coupled, and controlling distribution of requests and access to services.
Implementation
Our team has had exposure to a large number of emerging tooling and platforms for building Web
Service applications. We have extensive experience with all aspects of the BEA WebLogic Platform:
Workshop for building new services, WebLogic Integration (WLI) for workflows and business process
management, Liquid Data for exposing disparate data sources as Web Services, and Portal for rapidly
adding Web applications to corporate intranets. We have built Web Services based on Microsoft .Net,
including stand-alone and Web applications. Beyond the basic development toolkits, we have worked with
several security and identity management vendors, such as Oblix, Netegrity, and DataPower, to build SOA
solutions.
Having developed Blue Titan's Network Director: Web Services Management product, we thoroughly
understand the benefits and limitations of such software, and have had exposure to much of the
competition, including Digital Evolution, Amberpoint, Actional, and WebMethods.
In terms of messaging
vendors, we've worked with TIBCO, MQSeries, Talarian, Sonic, and have followed the evolution of
messaging to the Enterprise Service Bus, especially Sonic ESB; we look forward to BEA's Quicksilver
offering, which adopts many Network Director concepts. We also have experience with several open-source
ESB solutions, including JBossMQ, and ActiveMQ.
Prior to building Network Director, we developed
VelociGenX: Web Services Orchestration product, which won the CONNECT "Most Innovative New Product"
award in 2001. Through its creation, we gained intimate knowledge of several of the Web Service
standards such as BPEL4WS, XPATH, XSLT, WSDL, SOAP, WS-Inspection, WS-Addressing, WS-Reliable Messaging,
WS-Security, WS-Policy, UDDI, as well as how to meet WS-Interoperability guidelines.
We have written persistence layers on top of relational databases, such as Oracle, DB2, Microsoft SQL
Server, and MySQL, LDAP-based directories, and Berkeley-based hash tables, and the file system. Although
we have used EJBs, our evaluation of the various vendor offerings found several performance issues with
them. We've used Database Controls, JDO, JDBC, and have relied on well-established open-source efforts,
such as Castor JDO, and Hibernate, for both client and product development work.
Quality Assurance and Deployment
As part of ensuring that no single point of failure exists in the architecture or process, we've
defined best practices for testing and deploying Web Services. Several clients have hired us for
training and education of existing QA and operation teams. Our QA guideline involves verifying Web
Service functionality using Mindreef's SOAPscope, and capturing Web Service requests and responses into
"workspaces" which can be played back for regression testing. We also have employed open source tooling,
such as our in-house VeloMeter1 product, and the Perl Apache::Bench module to perform load testing.
At deployment, we describe how different parts of the SOA should be configured and where they should
be placed, with respect to the firewall, VPN, load balancers, routers, etc. We've helped customers come
up with processes for tracking down difficult to resolve problems that occur with loosely coupled
systems, enabling operations to respond rapidly to these potentially devastating production issues. Of
course, our architecture and testing guidelines emphasize catching such issues during QA and staging,
before new IT functionality is brought into production.
