One of the themes of the seminar I am presenting next Tuesday – during the Red Database Symposium in The Hague – will be ‘the pro active database’. Of course the database can just sit back and relax (and enjoy the flight), responding to queries and stored procedure calls. Passively processing all incoming requests. Ands for that, one of the other themes is: how to provide the optimal interface – or Service Layer or API – for clients, ranging from Java Web Applications, SOA components (BPEL, ESB), external HTTP clients as well as PL/SQL programs. I will discuss Views and Instead Of triggers, Collections, Table Functions and Cursor based APIs – as means for implementing such a service layer.
Pro active goes beyond this servile attitude.
It discusses ways for the database to not just wait until asked, but act and take initiative. One example is shown here: when events take place in the database that are potentially meaningful for external parties, either applications or humans, event triggers can enlist the help of a Servlet (using UTL_HTTP) to send IM (chat) messages to any interested party.
Other topics include Publishing an RSS feed from the database, Importing and Exporting Excel data using XML DB (save directly from your client into the database) and leveraging SOA Services from SQL and PL/SQL. For example: our BPEL engine runs a useful service that returns – through a complicated negations and internal process logic – the current Oil Price that applies for our business affairs. We will see how easy it is to get to the point where selecting the oil price in a SQL query will leverage the BPEL based service that even calls out to external web services.
With the world around us quickly changing, we need to establish a new balance between the database – both data, data oriented business logic and data based service – and clients – including Java and .NET middle tiers, SOA based services and external clients. What should be implemented in which tier? What interfaces should be defined to make all parties work optimally together? How can we best leverage services, reusable functionality available outside the database from inside it.
If you are interested in discussing these questions, and seeing a lot of demonstrations based on recent business cases, you are very welcome to come and join us. Register for this event through the URL given at the beginning of this article.