Archives

I've playing around with the new preview of Oracle SOA Suite. Among the new features, Business Events is the most attractive to me and it can be considered Oracle's first iteration towards a complete Complex Event Processing platform based on different technologies of the SOA Suite. Additionally, the implementation of Service Component Architecture (SCA) as part of the SOA Composite Editor is definitely interesting although I am still not convinced of its applicability on Enterprise scenarios.

Steve Vinoski posted an interesting reflection about the use of description languages on RESTful services. I have to agree 200% with Steve, WSDL and 1.1 and simply horrendous. Although WSDL 2.0 drastically improves in the modeling aspects of the services it does not solve one of the fundamental problems of its predecessors which tightly couple web Services with RPC and object oriented models. This gets even worse when you are working with ESBs or Integration Servers that are highly dependent on WSDL, sometimes you get the impression you are writing a big object oriented programL. However, I still think that some sort of description language is really beneficial in a lot of scenarios such as service-endpoint discovery, policy description, service management and versioning. On those scenarios, the use of languages such as RDF, WADL, Atom or even tools such as Power Point or Excel can provide a better and more flexible solution than WSDL.

One of the main challenges of Business Activity Monitoring(BAM) solutions is the control the lifecycle of the activities. This is especially critical in scenarios that involve activity continuations between different applications. Far too many times activities don't get completed affecting important BAM components such as aggregations, KPIs, etc. More importantly, keeping incomplete activities stored in the "ActivityName"_Active tables in the BAMPrimaryImport database can tremendously affect the performance of BizTalk BAM solutions. As part of the BizTalk server SDK we can find a SQL Server stored procedure that moves the incomplete activities from the Active tables to a new set of tables, the essence of this stored procedure is to add the incomplete state to the BAM Activity lifecycle creating a new table per BAM activity as well as its continuations and relationships. This stored procedure recycles individual activities and keeps the incomplete tables in the BAMPrimaryImport database. Although this approach works great, for a lot of scenarios makes sense to move the incomplete activities directly to the BAMArchive database keeping the BAMPrimaryImport database for storing live data. We can accomplish that with a few slight modifications to the same stored procedure highlighted in the following code. This stored procedure is intended to run in the BAMArchive database but it will poll the data from the BAMPrimaryImport database (notice the database prefix in some of the queries)

This is one of the best reflections I have ever read about the WS-* vs. REST debate. For the ones of you new to MEST, this is an complementary alternative to REST mostly evangelized by my friend and SOA guru Jim Webber