Monday, December 9, 2013

Cúram – A SPM Framework

          One of the benefits of working in a Fortune 100 company has been the exposure to varied technologies and different sets of process. Although I do face the danger of becoming a jack of all trades and master of none, however this thrill of working on something new has always been inside me since the days of yore when I stepped into dream world of software development.

Anyways, instead of drifting off the topic, I come to my intention of writing about a wonderful new technology called IBM Cúram which is a Social Program Management software.

Cúram Software was an Irish software company headquartered in Dublin, Ireland[1] with offices in Australia, Germany, India, the United Kingdom and the United States. The company produces Social Enterprise Management (SEM) software and offers consulting services, certification, and training. Their name is an Irish word for "Care and Protection". The company was founded in 1990. It was purchased by IBM in December 2011. [source]

Some details about this framework and it’s applications can be viewed at IBM website
also I got a interesting white paper which talks about high level usage of Cúram software.

Cúram is based on struts framework with usage of core java. The actual development makes use of RSA and modeling for use case creation. Since it’s a framework so most of the time the work entails custom enhancement of already developed APIs and then implementation of the business logic.

Relationship to Java EE Architecture

Consider the Java Enterprise Edition™ (J2EE) architectural layers (see the Oracle J2EE 1.4 tutorial for more detail):
 -  Client-side presentation:
     – Browser (HTML, Java Applet™ )
     – Desktop ( Java™ application)
     – Other devices ( J2EE™ client)
- Server-side presentation:
     – Web Server (JSP, Java Servlet™ , J2EE™ )
- Server-side business logic:
    – EJB Container (EJBs, J2EE™ )
- Enterprise Information System (EIS):
    – Various databases for example DB2 or H2 Server, MySql etc

The IBM Cúram Social Program Management™ client-side presentation tier consists of HTML user
interfaces rendered by a standard browser program on the user's desktop. Only pure HTML user
interfaces are directly supported using client generation tools. Other types of clients could also be
developed using generated Server Access Beans to connect to the server.
At runtime, the HTML user interface is generated by a server-side presentation layer consisting of Java™ Server Pages. Browser clients communicate with this layer over http, typically encrypted using SSL for security reasons.

The server-side presentation layer communicates with the server-side business logic using the RMI-IIOP protocol. IBM Cúram Social Program Management™ typically presents business objects in the business logic tier as Session EJBs although, as mentioned previously, they can also be simple Java™ RMI objects for the simpler deployment option often used during application development. In any event, business objects are ultimately plain Java™ objects (POJOs) with the middleware plumbing filled in transparently during the application build.

The back end of the IBM Cúram Social Program Management™ architecture is a relational database as well as other enterprise and legacy applications. Again, the middleware “plumbing” required to communicate with the EIS is generated.

Design Patterns

Many of the Oracle Java EE™ Design Patterns are used by IBM Cúram Social Program Management™.

The Struts™ framework used in the IBM Cúram Social Program Management™ presentation tier utilizes the Front Controller pattern. Generated Server Access Beans in the presentation tier implement the Service Locator pattern to hide the complexities of locating server-side objects.
The IBM Cúram Social Program Management™ application server uses the Session Façade pattern to provide coarse-grained access to business logic. Value Objects are used to communicate between different business objects on the server, and between the server and the web tier. The Data Access Object pattern is used for all database accesses in the application server.

Java Technologies Used

EJB Enterprise Java™ Beans
     IBM Cúram Social Program Management™ uses Enterprise Java™ Beans for its server component model.

Java™ Servlets
     Java™ Servlets are used by the presentation tier.

JSP Java™ Server Pages
     Java™ Server Pages are used to generate the user interface.

JTA Java™ Transaction API
     Java™ Transaction API is used for starting and committing transactions.

JDBC Java™ Database Connectivity
     Java™ Database Connectivity is used for the middleware to communicate with the application
database.

JMS Java™ Message Service
     Java™ Message Service is used for deferred processing and workflow within IBM Cúram Social
Program Management™.

JNDI Java™ Naming and Directory Interface
     Java™ Naming and Directory Interface is used in IBM Cúram Social Program Management™ both for application initialization-time lookup of Data Sources and Queues as well as to locate
Enterprise Java™ Beans from the Presentation Tier.

RMI-IIOP Remote Method Invocation
     Remote Method Invocation over IIOP is used as the communications protocol between the
presentation and application tiers.

You might want to have a look at it’s Solution Architecture here http://public.dhe.ibm.com/common/ssi/ecm/en/zzs03084usen/ZZS03084USEN.PDF

Cúram software does not require a high learning curve, with a 2 weeks training one is good to start on this and rest you pick along the way. In terms of job opportunities US/UK is a big market for this technology which it is picking up fast in India and south-east asia as well.

A fact cannot be ignored that framework development is here to stay and many organizations chose to use an existing framework and customize it rather than building something from scratch with a set of nerds.

Happy journey !!

No comments:

Post a Comment