Logo

Welcome to Service Oriented Architecture – SOA

Login or Signup to meet new friends, find out what's going on, and connect with others on the site.


Registration is closed

Sorry, you are not allowed to register by yourself on this site!

You must either be invited by one of our team member or request an invitation by email..

Note: If you are the admin and want to display the register form here, log in to your dashboard, and go to Settings > General and click "Anyone can register".

Forgot Your Password?

A new password will be e-mailed to you.

Member Login

You are browsing the archive for SOA Implementation.

by admin

Data Protection – Anticipating New Rules

6:00 am in SOA Implementation by admin

On January 25th 2012, the European Commission released its proposals for significant reform of data protection rules in Europe (drafts had been leaked in late 2011). These proposals have been largely welcomed by the Information Commissioners Office , although it also recommends further thought over some of the proposals. The dramatic changes in the scale and scope of handling personal information in online retailing and social networking since the 1990′s, when current rules were implemented, is an obvious driver for change. The rise of “cloud computing” is a related factor.

What might this mean for the UK education system, especially for those concerned with educational technology?

On the whole, the answer is probably a fairly bland “not much” since we are, as a sector, pretty good at being responsible with personal data. Sector ethics, regardless of legislation, is to be institutionally concerned and careful and, providing enough time is available to adapt systems (of working and IT), this should be a relatively low impact change. There are, however, a few implications worthy of comment…

The Principle of Data Portability

Unless you know nothing about CETIS, it should come as no surprise that “data portability” caught my eye. EC Fact Sheet No. 2 says:

‘The Commission also wants to guarantee free and easy access to your personal data, making it easier for you to see what personal information is held about you by companies and public authorities, and make it easier for you to transfer your personal data between service providers – the so-called principle of “data portability”.’

Notice that this includes “public authorities”. Quite how this principle will affect practice remains to be seen but it does appear to have implications at the level of individual educational establishments and sector services such as the Learning Records Service (formerly MIAP). It is conceivable that this requirement will be satisfied by “download as HTML”, a rather lame interpretation of making it easier to transfer personal data, but I do hope not.

So: are there candidate interoperability standards? Yes, there are:

  • LEAP2A for e-portfolio portability and interoperability,
  • A European Standard, EN 15981, “European Learner Mobility Achievement Information” (an earlier open-access version is available as a CEN Workshop Agreement, CWA 16132)

These do not cover absolutely everything you might wish to “port” but widespread adoption as part of demonstrating compliance with a legislative “data portability” requirement is an option that is available to us.

It is also worth noting Principle 7 of “Information Principles for the UK Public Sector” (pdf) – see also my previous posting – which is entitled “Citizens and Businesses Can Access Information About Themselves” and recommends information strategies should go “… beyond the legal obligations” and  identify opportunities  “to proactively make information about citizens available to them by default”, noting that this would negate the cost of process and systems for responding to Subject Access Requests. I hope that this attitude is embraced and that the software is designed on a “give them everything” principle rather than “give them the minimum we think the law requires”. Software vendors should be thinking about this now.

There are some interesting possibilities for learner mobility if learners have a right to access and transfer fine grained achievement and progress information, especially where that is linked to well defined competence (etc) structures. Can we imagine more nomadic learners, especially those who may be early adopters of offerings from the kind of new providers that David Willetts and colleagues are angling for?

The Right to be Forgotten

This right is clearly aimed squarely at the social network hubs and online retailers (see the EC Fact Sheet No.3, pdf). It isn’t very  likely that anyone would want to have their educational experiences and achievements forgotten unless they plan to “vanish”. Indeed, it would be surprising if existing records retention requirements would be changed and the emerging trend of having secure document storage and retrieval services under user control – e.g. DARE – seems set to continue and be the way we manage this issue cost-effectively.

The right to be forgotten may be more of a threat to realising the “learning analytics” dream, even if only in adding to existing uncertainty, doubt and sometimes also fear. We need some robust and widely accepted protocols to define legally and ethically acceptable practice.

Uniformity of Legislation

The national laws that were enacted to meet the existing data protection requirements are all different and the new proposals are to have a single uniform set of rules. This makes sense from the point of view of a multi-nation business, although it will not be without critics. This is just one factor that could make a pan-European online Higher Education initiative easier to realise, whether a single provider or a collaboration. I perceive signs that people are moving closer to viable approaches to large scale online distance education using mature technologies, and possibly English as the language of instruction and assessment; looming “low-end disruptions” (see the Wikipedia article on “Disruptive Innovation“) for the academy as we know it. [Look out for an interview with Seb Schmoller which has influenced my views, due to be published soon on the JISC Observatory website.]

This is, of course, just some initial impressions on some proposals. I am sure there is a great deal that I have missed from a fairly quick scan of material from the commission and there is bound to be a lot of carping from those with businesses built around exploiting personal data so the final shape of things might be quite different.

by admin

Recruiting: IBM Ilog vs. JBoss Drools

2:34 pm in SOA Implementation by admin

I received notice of a Victorian government position offering $106k, as follows, today:

BRMS Developer (WebSphere ILOG JRules)

You will have proven experience as a BRMS Developer within a Java/JEE environment using IBM‘s WebSphere ILOG JRules platform. You will have implementation experience using integration technologies (e.g. Web Services, JMS) and have the ability to liaise with and engage key stakeholders.  Ideally you will also have knowledge and/or exposure to IBM‘s WebSphere integration suite (including the MQ Series).

This got a reaction out of me since we’re looking for people (although emphasizing logic, semantics, and English rather than any particular engine).  At first, I thought it must be a Java job, but stakeholder engagement indicates this is a full-fledged knowledge engineering position.

$100k for anyone with strong, specific experience seems low.  For someone that can understand objectives and translate requirements into operational business logic, it seems lower.

I’m surprised there isn’t more of an Ilog premium, too.  JBoss Drools consultants can make more than this.

by admin

Blaze down in Fair Isaac’s Q1 2012

2:14 pm in SOA Implementation by admin

FICO reported 9% growth in revenues year over year.

  • the bulk of revenues and all the growth was in pre-configured Decision Management applications
  • FICO score revenues were half as much, w/ B2B growing as B2C (myFICO) waned
  • tools revenues were less than half again as much and flat
    • optimization (XPress) was up
    • Blaze Advisor was down

This is in sharp contrast to the success that Ilog has enjoyed under the IBM umbrella.

Blaze Advisor doesn’t seem to make sense as a stand-alone tool any more.   Applications are great, and so are combinations of BI/optimization/rules, but if the BRMS tool will survive independently it needs to find more traction, perhaps outside of Fair Isaac.

by admin

Information Principles for the Public Sector – the Case of Principle 4

12:39 pm in SOA Implementation by admin

In December 2011, Version 1.0 of “Information Principles for the UK Public Sector” (pdf) was published by the Cabinet Office. The principles have been endorsed by both the CIO and CTO councils within government. What surprised me is how good this document is.

The approach taken recognises that the principles will be implemented in diverse ways according to the context. It is well written and full of material which strikes me as being widely applicable (not just to government bodies) in addition to containing a number of points that indicate a progressive attitude to information. In particular, “Principle 4 – Information is Standardised and Linkable”, gives me cause to nod with approval.

The standards message is not, of course, a new one for The Government; it is the inclusion of “linkable” in a principle that will be applied across government activities which is. This is not simply “linked data is cool” expressed in Civil Service Speak; the principle is deeper than that and speaks to me of a possible paradigm shift in the way [collected] data is understood.

Under Implications for Information Strategy, it recommends “a framework for linking information is established” and goes on to say:

“Aspects to consider include:

  • Unambiguous identification of items (eg using authoritative reference data, or URIs)
  • Classifying items and the relationships between them.
  • Linking of items (eg potentially using the open standard web mechanisms governed by the W3C)

Consideration should be given to both internal linkages to other information sources within the organisation, and also to external linkages to other information sources across government.”

In essence, I see this as being indicative of a shift away from conceiving of data as “stuff in databases” and towards “distributed data on the network”. I see this as being a Really Big Deal and significantly more sophisticated than the piecemeal publication of data seen so far (even on data.gov.uk, which remains an important innovation).

By itself, of course, Principle 4 achieves nothing but two recent events and the Principle add up to suggest that this is not just a pipe-dream.

The first event, which is a culmination of several priors, was the initiation of the in-elegantly, but accurately. named “Interim Regulatory Partnership Group: Project B, Redesigning the higher education data and information landscape”. While this project is only at present deliberating on a feasibility report, a bit of imagination of where this might go with some inspiration from the Reports and Documents (e.g. the “HE Information Landscape Study“, pdf) leads towards making more use of distributed collected data. Maybe I am making a leap too far but a combination of reducing data collection burden with principles of collect-once-use-many-times inevitably leads to linking data between (among others) UCAS, the Student Loans Company and HESA since it is inconceivable to me that we would not  have a multi-party landscape.

The second, more recent, event was the occasion of a discussion with a member of the Technical Support Service of the Information Standards Board for education skills and children’s services (ISB TSS) from which I understand the intention is to assign URIs to entities in the standards the ISB TSS creates. Only a small step but…

My take-home message on all of this: nothing will happen very quickly but the gradual permeation of an understanding of the implications of distributed data on the network will make possible conversations, decisions and interventions that are currently rather difficult and the drivers behind Project B are also drivers that will, I hope, accelerate this process.

by admin

AQAdapter: Reset your datasource

10:22 am in SOA Implementation by admin

Using the AQ Adapter in a cluster environment, can cost you a lot of temporary tablespace. When you use AQ for dequeuing events and process them further with OSB or SOA Suite, there is always a connection to the database.

This connection is waiting for messages to appear on the Queue (it is subscribed). From middleware perspective everything works fine, data is being dequeued and your proxy-service or composite is running.

But at database level, the session is consuming tablespace. This is the temporary tablespace, so far so good. But if you use this on heavy load for a long time, the temporary space will grow to hundreds of mega or even gigabytes.

To determine how much temp space your sessions are using, you can execute the following SQL:

SELECT   u.tablespace, ROUND(((u.blocks*p.value)/1024/1024),2)||'M' "SIZE", s.sid||','||s.serial# SID_SERIAL, s.username, s.program, s.machine, s.logon_time, Q.NAME, s.eventFROM   sys.v_$session s, sys.v_$sort_usage u, sys.v_$parameter p, sys.dba_queues qWHERE p.name   = 'db_block_size'AND a.saddr    = b.session_addrAND a.username = 'SCOTT'AND a.p1text   = 'queue id'AND a.p1       = q.qidORDER BY   a.machine, u.blocks;

I try to solve this by playing with the AQAdapter settings and de XA-datasource behind it. Non of them fixed the issue. The only way I solved it was by resetting the data-source. On the Internet I find a nice article from Edwin Biemond and refined his script into one I prefer. This is the result:

## Usage:## $ORACLE_HOME/common/bin/wlst.sh resetdatasource.py    ## based on:#     http://biemond.blogspot.com/2010/04/resetting-weblogic-datasources-with-ant.html#

## Crontab:#  10 1 * * 6 /bin/bash -x /opt/weblogic/Middleware/Oracle_OSB/common/bin/wlst.sh a.py weblogic t@ctwl4cc t3://l2-mslaccadm02:7201 MslDQXaDS >>/data/logs/resetdatasource.log 2>&1#import sysimport tracebackimport timeimport datetime

print 'Started at: ' + str(datetime.datetime.now())n1 = datetime.datetime.now()

## Parse command line paramteres#adminUser       = sys.argv[1]adminPassword   = sys.argv[2]adminUrl        = sys.argv[3]datasourceNames = String(sys.argv[4]).split(",")

connect(adminUser, adminPassword, adminUrl)domainRuntime()

drs = ObjectName("com.bea:Name=DomainRuntimeService,Type=weblogic.management.mbeanservers.domainruntime.DomainRuntimeServiceMBean");domainconfig = mbs.getAttribute(drs, "DomainConfiguration");servers = mbs.getAttribute(domainconfig, "Servers");

## Loop over serversfor server in servers:  serverName = mbs.getAttribute(server, 'Name')  if serverName == "AdminServer":    print 'Server: ' + serverName + ' skipped!'  else:    print 'Server: ' + serverName    dsBean = ObjectName('com.bea:ServerRuntime=' + serverName + ',Name=' + serverName + ',Location=' + serverName + ',Type=JDBCServiceRuntime')    if dsBean is None:      print 'not found'    else:      datasourceObjects = mbs.getAttribute(dsBean, 'JDBCDataSourceRuntimeMBeans')      #      # Loop over datasources      for datasourceObject in datasourceObjects:        if datasourceObject is None:          print 'datasource not found'        else:          dsName = mbs.getAttribute(datasourceObject,'Name')

          #          # Loop over datasource to be reset          for datasourceName in datasourceNames:            if dsName == datasourceName:              print '    Reset: ' + dsName              try:                mbs.invoke(datasourceObject, 'reset', None, None)              except Exception, err:                print 'print_exc():'                traceback.print_exc(file=sys.stdout)                print                print 'print_exc(1):'                traceback.print_exc(limit=1, file=sys.stdout)            else:              print '  Skipped: ' + dsName

n2 = datetime.datetime.now()print 'Duration: ' +  str(n2 - n1)print 'Finished at: ' + str(datetime.datetime.now())

The script can be scheduled via the crontab on the admin server. The following example starts the script every sunday at 01:10 AM.

10 1 * * 6 /bin/bash -x /opt/weblogic/Middleware/Oracle_OSB/common/bin/wlst.sh /data/scripts/resetdatasource.py weblogic welcome1 t3://myadminserver:7001 MyDQXaDS >>/data/logs/resetdatasource.log 2>&1

by admin

On the misuse of general principles

6:43 pm in SOA Implementation, SOA Solutions by admin

#entarch There is a common fallacy among enterprise architects that radical structural and behavioural change can and should be driven by a few simple and powerful ideas. Alas, the public sector is strewn with the disastrous consequences of this fallacy.

We can find countless examples from the National Health Service (NHS) in the UK. For Steve Harrison, Honorary Professor of Social Policy at the University of Manchester, the idea that NHS reorganisations can be triggered by a few general ideas is one of the Seven Fallacies of English Health Policy. He points out that high levels of abstraction (beloved by academics and architects alike) do not allow proper assessment of the plausibility of claims about benefits of reorganisation and how the system will work. (HT @mellojonny)

Where do health reorganization principles come from? I asked a popular search engine, and was led to a paper called Basic Principles of Information Technology Organization in Health Care Institutions (JAMIA 1997); (I suppose from the high search ranking of this paper that it is a widely used source for such principles.) The paper concludes that all organizations MUST have certain characteristics, based on a single case study where these characteristics seemed to be beneficial; in other words, arguing from the particular to the general. (I’m sure there must be some more rigorous studies, but they don’t seem to get as good search rankings for some reason.)

But many of the principles that govern sweeping architectural reforms of the public sector aren’t even derived by thinly based generalization from such observed vignettes, but are derived from purely abstract concepts such as “choice” and “competition” and “justice”, to which each may attach his or her own politically motivated interpretation.

This leads to several levels of failure – not only failure of execution and planning (because the generalized principles are not sufficiently refined to provide realistic and coherent solutions to complex practical problems) but also failure of intention (because a vague but upbeat set of principles helps to conceal the fact that the underlying vision remains woolly).


by admin

Oracle Service Bus Cookbook

6:00 am in SOA Implementation by admin

Former Oracle collegueus and business parnerts wrote a nice cok book on the usages of Oracle Service Bus. The book is full of examples and guide you through the working and usage of the Oracle Service Bus. The is very technical of useful for developers who just ant to start the OSB. Experienced developers will use this book for the complete examples on the different technologies using OSB, such as JMS, EJB.

When you use this book, it is expected that you understand the concepts of XML, XLST, WSDL, WebServices, JMS and SOAP and basic knowledge of SQL. This is not explained in the book. Which is a advantage! Refer to the w3schools for such things.


You can obtain it via Packt Publishing.

Some subjects I miss in the book; best practice on execption handing, throtteling, deployment.

The examples in the book are based Oracle Service Bus patch set #3, but can also be used on top of patch set #4. This release is already available since august 2010. Why didn’t’ the authors use this version? I expect that the examples in the book can also be applied on the upcoming patch set release #5.

by admin

OSB: Java Object to XMLObject (or String)

12:12 pm in SOA Implementation by admin


1. Create a very simple Java Project with just three classes (This project is just to test this solution)

Book.java

    package com.blogspot.oraclesoasuite11g;
    
    import java.io.Serializable;
    import java.util.Date;
    
    public class Book implements Serializable {
    
     private static final long serialVersionUID = -5802550970297576366L;
     public String ISBN;
     public String title;
     public String author;
     public Date publicationDate;
    
     public String getISBN() {
      return ISBN;
     }
     public void setISBN(String ISBN) {
      this.ISBN = ISBN;
     }
     public String getTitle() {
      return title;
     }
     public void setTitle(String title) {
      this.title = title;
     }
     public String getAuthor() {
      return author;
     }
     public void setAuthor(String author) {
      this.author = author;
     }
     
     public Date getPublicationDate() {
      return publicationDate;
     }
     public void setPublicationDate(Date publicationDate) {
      this.publicationDate = publicationDate;
     }
    }

Author.java

    package com.blogspot.oraclesoasuite11g;
    
    import java.io.Serializable;
    
    public class Author implements Serializable {
    
     private static final long serialVersionUID = -5802550970297576366L;
     public String name;
     public Integer age;
    
     public String getName() {
      return name;
     }
     public void setName(String name) {
      this.name = name;
     }
     public Integer getAge() {
      return age;
     }
     public void setAge(Integer age) {
      this.age = age;
     }
    }



Library.java

    package com.blogspot.oraclesoasuite11g;
    
    import java.util.Date;
    
    public class Library {
     
     public static Book getBook(){
      Book bk = new Book();
      bk.setAuthor(“Paul”);
      bk.setTitle(“Great book”);
      bk.setISBN(“99999999″);
      bk.setPublicationDate(new Date());
      return bk;
     }
     
     public static Author getAuthor(){
      Author au = new Author();
      au.setName(“Paul”);
      au.setAge(90);
      return au;
     }
    }

Note: It’s important that the two methods, getBook() and getAuthor(), are static so they can be used in OSB.

Export it as Library.jar (Java JAR) and put it in a new OSB Project – OSB Common Resources

2. This is the important part!! Create a new Java Project – JavaToXML

It’s a very simple and generic project that makes the marshelling of any java Object to XMLObject (or just to String if you wish).

This project uses Xtream library to serialize objects (http://xstream.codehaus.org/) and XMLBeans for accessing XML by binding it to Java types (http://xmlbeans.apache.org/) so the dependencies are xstream-1.4.2.jar, kxml2-2.3.0.jar and xmlbeans-2.4.0.jar.

ObjectMarshaller.java

    package com.blogspot.oraclesoasuite11g;
    
    import org.apache.xmlbeans.XmlObject;
    
    import com.thoughtworks.xstream.XStream;
    
    public class ObjectMarshaller {
    
     public static XmlObject getXmlObject(Object obj) {
    
      String strXml = null;
      XmlObject xmlObj = null;
    
      try {
    
       XStream xstream = new XStream();
       xstream.alias(obj.getClass().getSimpleName(), obj.getClass());
       strXml = xstream.toXML(obj);
       xmlObj = XmlObject.Factory.parse(strXml);
    
      } catch (Exception e) {
       System.err.println(e.getMessage());
       e.printStackTrace(System.err);
      }
    
      return xmlObj;
     }
    }

Export it as JavaToXML.jar (Java JAR) and put it also in project OSB Common Resources

3. Create a OSB project – OSB Library (it doesn’t do anything special but to see the JavaToXML in action)

4. Stop the server, put the dependencies jars in ORACLE_DOMAIN\lib and start it again

5. Deploy the OSB Library project in OSB Console and test it!

by admin

Your Presentation at the “Oracle SOA & BPM Customer Insights Online Summit”

6:01 am in SOA Implementation by admin

Interested in being one of the customer presenters at our
first online SOA & BPM customer summit to share your success with Oracle
SOA, BPM, and/or Governance? This
event provides a great opportunity to broadcast your work as well as network
with other presenters and attendees who are doing similar projects or have
already implemented what you plan to explore next.

The “Oracle SOA & BPM Customer Insights Online
Summit” (date to be announced soon)
will have 30-minute customer sessions on SOA, BPM and Governance. To learn
more about this event and to discuss topics you may be interested in
presenting, please contact bruce.tierney@oracle-DOT-com
- Director of Product Marketing for Oracle SOA Suite.

by admin

Pursuing a decision tree down a rat hole

6:00 am in SOA Implementation by admin

Fair Isaac’s recent press release touts the “key differentiator” of Blaze Advisor 7.0 as:

the innovative Decision Graph visual metaphor, a decision tree management solution that makes even the most complex rule sets easier to manage and explain

Of course, a decision tree is really more like a root system (i.e., the tree is upside down).  So, what this capability is particularly good for explaining how some pretty structured logic gets wherever it lands up, which FICO touts:

The new capability is especially valuable to businesses that need to be able to explain their decision logic to external auditors and regulators, or to internal parties such as senior management.

Unfortunately, this capability is only good for business logic that has been heavily analyzed and transformed from more natural forms of knowledge that stakeholders and regulators understand or communicate about.

FICO’s suggestion is that after operational guidelines and regulations have been laboriously translated (literally and, hopefully, appropriately) into if-then-else logic (i.e., decision trees) that viewing the path through the “code” will be informative to stakeholders and suitable for regulators.  That seems like quite a stretch given the immediately following sentence, which indicates the complexity of using the metaphor in the first place:

Decision Graph gives business analysts a more intuitive way to view and navigate decision trees, which can reach 10,000 nodes or more.

Lots of people are attracted to such “visual programming” metaphors, but they are extremely limited in their logical expressiveness and, therefore, in their utility.  Still, if you are using induction technology (such as FICO’s)  to produce very large decision trees (independent of governing policies or regulations) such a tool can be useful, if only to understand what the machine “discovered” or to explain “how” it reached a decision, albeit post facto, which may or may not be compliant with governing doctrine.

The press release also talks about using this structure to experiment or optimize certain decisions by simulation, which is good stuff.  FICO has long led in this area, especially in the markets it focuses on (i.e., B2C financial).  This would have been a better central point, imo.

Overall, I agree with the following quote embedded within the release:

“Business rules management provides a shared platform for CIOs and business managers to help their enterprises stay competitive, and making business logic clearer to all parties is an essential part of that collaboration,” said Jim Sinur, a vice president at Gartner Research specializing in business rules management systems. “Better visualization of business logic can provide a huge uplift for companies that are looking for ways to improve business decisions.”

Showing thousands of nodes in a tree or cells in a table does not accomplish the appropriate goal (i.e., effective collaboration) of the first clause, however.  And Jim did not say that decision trees provide effective visualization.

My take: the best approach is to guarantee that the statements of business policy and regulation are unambiguously understood by machine intelligence that automatically translates them into completely reliable systems.

That is, the best visualization for general purposes may be plain English.

Get Adobe Flash playerPlugin by wpburn.com wordpress themes