Extending sakai cle to websphere and db2
This presentation is the property of its rightful owner.
Sponsored Links
1 / 41

Extending Sakai CLE to WebSphere and DB2 PowerPoint PPT Presentation


  • 72 Views
  • Uploaded on
  • Presentation posted in: General

Extending Sakai CLE to WebSphere and DB2. Mr. Marty Banting, Sr. Software Engineer, IBM Mr. Howard Baker, Executive Project Manager, IBM Mr. John Bush, Development Manager, rSmart Mr. Earle Nietzel Software Engineer, Marist College Mr. Austin Schilling, IT Executive Consultant, IBM.

Download Presentation

Extending Sakai CLE to WebSphere and DB2

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Extending sakai cle to websphere and db2

Extending Sakai CLE to WebSphere and DB2

Mr. Marty Banting,

Sr. Software Engineer, IBM

Mr. Howard Baker,

Executive Project Manager, IBM

Mr. John Bush,

Development Manager, rSmart

Mr. Earle Nietzel

Software Engineer, Marist College

Mr. Austin Schilling,

IT Executive Consultant, IBM


Agenda

Agenda

  • Amsterdam 2007 “recap”

  • Collaboration Team and Environment

  • Application Server and Database Considerations

  • Production at Marist College

  • Sakai Community Availability

  • Next Steps


Marist college rsmart ibm collaboration on enterprise sakai june 12 2007

Marist College, rSmart, IBM collaboration on Enterprise Sakai June 12, 2007


Marist college

MARIST COLLEGE

  • We are NOT a large research university!

  • Founded 1929 – small complex liberal arts college

  • Approximately 5700 FTE student population

  • 200 full-time faculty, 500 part-time

  • Long history of incorporating technology into the teaching and learning process


Why do we need an extensible solution

Why do we need an extensible solution?

Answer: We’ve learned our lesson from the past…


Learning from the past

Learning from the past…

  • In 1996 the digital horizon was foggy…

  • We have a better view today… watch out!

  • Use and production of digital media will grow exponentially over next decade:

    • Electronic portfolios (oh yeah…“for life”)

    • Rich media learning objects (IVT Demo)

    • IdentityQuest Project (Podcasting Demo)

    • Next Up: Mobile authoring tools?


Marist college evolving learning grid

Marist College Evolving Learning Grid

State and Local Consortia

Museums, science centers, etc.

Colleges and Universities

K-12 District

NSF MM Grid

RPI, Lehigh,,Geneseo

Greystone

NYSTAR CCODC

NSF IDCP

FDR

Sewall-Belmont

Schema for Provisioning the Sharing of Resources/Tools

Student content

Certification Exams

Online Courses

“Raw” Video Content

Sakai Repository


Marist ibm joint study

Marist/IBM Joint Study

  • Well Established Relationship, First Project – 1988

  • Living Lab for New Technologies

    • Research projects, IBM Academic Initiative support, Marist grant initiatives

  • IBM program manager provides overall project management

    • IBM researchers, developers, business execs, and Marist faculty, IT staff, and students collaborate on numerous projects

  • Marist students hired as IBM interns

    • Opportunities for full-time positions


Marist sakai goals

Marist Sakai Goals

  • How do we create a:

    • Standards based,

    • Capacity/Performance scalable,

    • Technology Extensible,

    • version of the Sakai CLE capable of handling future business and application needs

    • in a Services based infrastructure?

  • How can this vision be realized with the Sakai CLE deployment within the existing Joint Study infrastructure of:

    • WebSphere Application Servers, and

    • DB2 9 pureXML Technology Database?


Marist rsmart ibm support

Marist – rSmart – IBM Support

  • QA environment running DB2 and WAS will be live in September with several “flavors” of Sakai.

  • Marist will also be contributing several QA resources for testing activities


Extending sakai cle to websphere and db2

Global Campus

Students

Administrators

Educators

Customized Portals

App 1

App 2

App 3

App 1

App 2

App 3

Collaborative Learning Environment

Sakai Vision (2005)

Sakai Tools &

Development

Environment

Core Services: content, user, security, site

Distributed Environment

Core Infrastructure


Extending cle infrastructure 2007

Extending CLE Infrastructure (2007)

Global Campus

Students

Administrators

Educators

Customized Po

rtals

App 1

App 2

App 3

App 1

App 2

App 3

Collaborative Learning Environment

Relational Databases

File Systems

Sakai CLE v2.4.1

rSmart Distribution

Core Services: content, user, security, site

-X-Platform O/S

- Slackware, RedHat, SuSE

- WebSphere Application Server

- DB2v9 SQL/XML Database

-X-Platform O/S

-Fedora, other Linux, Windows

-Tomcat Application Server

-My SQL Database + Others


Collaboration team

Collaboration Team

  • IBM

    • Marty Banting

    • Alexander Reynolds

    • Robert Gilnack

    • Michael Ardizonne

    • Daniel Herman

    • Daniel Miller

    • Howard Baker

    • Austin Schilling

  • rSmart

    • John Bush

    • Michael Sanders

    • Tony Potts

  • Marist College

    • Earle Nietzel

    • John Digilio

    • Josh Baron


Marist ilearnodc history

Marist iLearnODC History

  • Previous porting efforts included Sakai 2.2.2 and 2.3.1.

  • rSmart Sakai CLE 2.4 was next to be ported.

  • July & August

    • Sakai 2.4 port Development phase

  • September & October

    • Merged in Sakai 2.4.1

    • Testing phase

  • November

    • UAT phase

  • December

    • Migrate IBM course to into production

  • Work in Progress


A collaborative effort

A Collaborative Effort

  • rSmart focused efforts on DB2

  • IBM / Marist Joint Studies focused on Websphere

  • Weekly Checkpoint Meetings

  • Daily status calls

  • Scheduled builds

  • rSmart Jira

rSmart Sakai CLE

WAS/DB2 port

(iLearnODC)

rSmart Sakai CLE

Sakai


Porting environment

Development & Build Tools

Eclipse

Rational Application Developer

Rational Software Architect

Maven, Subversion

Testing

IBM

Linux Blades

Slackware, SuSE v9

Apache Tomcat

MySQL

WebSphere v6.1.09

DB2 v9.3

rSmart

Jira

SVN

Marist College

SVN

Porting Environment


Tool list

Tool List

  • Blogger

  • Samigo

  • Announcements

  • Calendar

  • Melete

  • Gradebook

  • OSP Tools

  • Message Center

  • Site Stats

  • Site Info

  • Assignments

  • Syllabus

  • Roster

  • Profile

  • User Membership

  • rWiki

  • … and more!


The challenges

The Challenges

  • Team members relatively new to Sakai

  • No proper debugging environment

  • Collaborative effort with a distributed team

  • Issues

    • Tomcat vs. Websphere related: 33

    • Sun vs. IBM JDK/JRE related: 8

    • DB2 related: 35

  • Time to analyze and fix: ½ hour to 1.5 weeks


Porting for websphere

Porting for Websphere

  • Goal is to create a single codebase for both Tomcat and Websphere

  • Strived to make modifications app server independent

  • If not, then we used

    • Logical ‘if’ in Java code to check app server flag in sakai.properties

    • Websphere specific versions of xml/property config files


Websphere porting issues differences in jdk jre

Websphere Porting IssuesDifferences in JDK/JRE

  • XML

    • Referencing vendor specific implementationseg. “com.sun.org.apache.xerces.internal.parsers.SAXParser”

    • Null attributes handled differently on XML document to string conversions


Websphere porting issues differences in jdk jre1

Websphere Porting IssuesDifferences in JDK/JRE

  • JSP

    • Quotes handled differently in JSP compilation<jsp:include page="<%= (String)request.getAttribute("_body")%>" />


Websphere porting issues was vs tomcat

Websphere Porting IssuesWAS vs. Tomcat

  • Deployment Descriptors

    • Tomcat is much more lenient with invalid deployment descriptors

      • If a web.xml file does not match the servlet specification it overlooks the error and allows the web application to function normally

    • WebSphere is much more strict

      • Will not allow an application to be installed unless there are no errors in the web.xml file


Websphere porting issues was vs tomcat1

Websphere Porting IssuesWAS vs. Tomcat

  • Redirection / Navigation Issues

    • in Tomcat: getContextPath() = /osp-portal/tool/197c330a-8baf-4c0b-0018-3741f1eb3e87 In Websphere:request.getContextPath() = /osp-portal

    • Affects context.redirect calls eg. context.redirect("sakai.filepicker.helper/tool")


Db2 porting issues

DB2 Porting Issues

  • Work Involved:

    • Creating db2 versions of all sql/ddl scripts

    • Reworking issues from core services

    • Hibernate Complications

    • Deal with non-standard persistence mechanisms in some tools (jforum and blogger)

  • Design Goals

    • one code base must support DB2 plus mysql and oracle

    • isolate changes

23


Core services

Core Services

  • No vendor specific abstraction in Sakai for dealing with vendor specific issues.

  • End up with code like this:

if ("oracle".equals(m_sqlService.getVendor())) {...

} else if ("mysql".equals(m_sqlService.getVendor())) { ...

} else if ("db2".equals(m_sqlService.getVendor())) {

...}

24


For 2 5

For 2.5

  • Core Services delegate to injected SQL helpers (SAK-8706)

public interface ClusterServiceSql {String getListExpiredServers(long timeout);

...

}

public class SakaiClusterServiceSqlOracle extends SakaiClusterServiceSqlDefault{public String getListExpiredServers(long timeout){return "select SERVER_ID from SAKAI_CLUSTER where SERVER_ID != ? and UPDATE_TIME < (CURRENT_TIMESTAMP - " + ((float) timeout / (float) (60 * 60 * 24)) + " )";}}public class SakaiClusterServiceSqlMySql extends SakaiClusterServiceSqlDefault{public String getListExpiredServers(long timeout){return "select SERVER_ID from SAKAI_CLUSTER where SERVER_ID != ? and UPDATE_TIME < CURRENT_TIMESTAMP() - INTERVAL " + timeout + " SECOND";}

25


Refactor status

Refactor Status

  • Completed for event, content, cluster, site, user, authz, and db

  • Microsoft SQL Server implementations contributed (SAK-7002)

  • DB2 still left to do, for 2.6 ?

26


Hibernate and db2

Hibernate and DB2

  • length of index names (18 characters for DB2)

  • binary type

  • type mismatches in a few Samigo queries

27


Db2 dialect

DB2 Dialect

  • Good place for dealing with how Hibernate maps its types to the vendor

  • Can enforce column length limitations

  • Doesn’t provide a solution to all our problems....

28


Hibernate usertypes

Hibernate UserTypes

  • Interface which allows you to control how a data element maps from the object model to the database and back

public Object nullSafeGet(ResultSet resultSet, String[] names, Object owner)

throws HibernateException, SQLException { final Object object; final Integer bigInt = resultSet.getInt(names[0]); if (bigInt == null) { return null; } return bigInt.toString(); } public void nullSafeSet(PreparedStatement statement, Object value, int index)

throws SQLException { final String strValue = (String) value; if (strValue == null) { statement.setNull(index, Types.BIGINT); } else { statement.setInt(index, Integer.valueOf(strValue)); } }

29


Transforming hbm s

Transforming hbm’s

  • Modified AdditionalHibernateMappingsImpl to apply a vendor specific xsl transformation to the hbm’s

  • This re-writes the hbm’s at runtime, “injecting” our custom UserTypes.

  • This avoids hacking up the hbms, with only a one line code change to this file.

30


Building deploying

Building & Deploying

Tomcat

components/

webapps/

components

components

components

components

war

war

shared/lib/

war

war

jar

jar

jar

jar


Building deploying1

Building & Deploying

Websphere

components/

installedApps/

components

components

components

components

EAR

war

war

shared/lib/

war

war

jar

jar

jar

jar


Build process

Build Process

  • Design Goals

    • Build process for Websphere as easy as Tomcat

    • Leverage existing build process with Maven 1.0.2

  • Differences from Tomcat build

    • Copies Websphere specific XML and property files pre-compilation

    • Packages the WAR files into an EAR file

    • Copies components and shared libs to appropriate directory


Building process

Building Process

  • New ‘was’ module

    • starting point for Websphere build

    • contains overlay directory with the Websphere specific XML and property files

    • Gets copied into source pre-compilation

  • New ‘ear’ project within ‘was’ module

    • utilizes Maven EAR plugin

    • project.xml specifies WAR dependencies

  • New property (was.sakai_shared.home) in build.properties specifies where to deploy components and shared library files


Deployment process

Deployment Process

  • Deployed via Websphere Admin Console

    • Web based application for Websphere management

  • Setup shared library pointing to components and shared lib directory

  • Deploy as EAR file


Marist ilearnodc production status

Marist iLearnODC Production Status

  • Final Testing near completion

  • January 2008

    • System Z Networking course online

  • March 2008

    • 2 new courses online

    • Prepare to migrate Marist Courses

  • September 2008

    • Sakai 2.4.1 production at Marist


Best practices

Best practices

  • Use persistence frameworks

  • Consider the web framework

  • Don’t hard code implementations

  • Validate against specification

37


Next steps

Next Steps

  • Form Platform Support WG

  • Refactor DB2 work to use new SQL helpers in 2.5

  • Refactor/revisit some Websphere fixes

  • Establish better development environment for Websphere

  • Contribute low hanging fruit ASAP

  • Increase adoption of Sakai


Extending sakai cle to websphere and db2

Q & A


Technical contacts

Technical Contacts

John Bush ([email protected])

Marty Banting ([email protected])

Earle Nietzel ([email protected])

Austin Schilling ([email protected])

Howard Baker ([email protected])


  • Login