CMIS and Apache Chemistry Workbench

November 28th, 2012 by mbarsic

The Apache Chemistry Workbench is a very cool tool for exploring a CMIS accessible content repository.  I really liked the Groovy console for quickly experimenting and validating code, but be careful.  One for the included sample scripts that I was modifying included this:

    OperationContext oc = session.createOperationContext();
    oc.setFilterString("cmis:objectId,cmis:contentStreamLength");
    oc.setIncludeAllowableActions(false);
    oc.setMaxItemsPerPage(10000);

The setFilterString limits the properties that are returned – I spent about an hour trying to figure out if Groovy had a bug that was preventing all the properties from coming back.

One other note – here’ s the connection string for an Alfresco CMIS  AtomPub binding that I used:

http://HOST:PORT/alfresco/service/cmis

 

Alfresco DevCon Day 0 – Various Notes

November 14th, 2012 by mbarsic

I’m surprised at the the number of people who’ve mentioned using Drupal and Alfresco together using CMIS.  It seems to be a pretty popular option.  Also, I learned that Acquia released customized Drupal, Commons, for community/intranet sites that we might want to explore.

Ran into Peter Monks who wrote a very handy extension that allows you to use Groovy to dynamically test out code.  It’s a developer tool only due to security concerns, but should save developers a lot of time.  He also talked to me about the cloud APIs and future plans for extending Alfresco with “out-of-process” calls via HTTP.  The latter sounded very interesting especially for making development easier.

Also, I have to thank Daryl Quinn (?) from Alfresco for being a good sport.  At lunch, Richard and I spoke with a guy from Pearson who had an interesting question about how to use Alfresco to integrate with various existing content repositories.  I suggested he ask the guy in the Alfresco shirt sitting near us.  That was Daryl and he gave a good answer that I want to file away for future use – create the meta-data in Alfresco via a “content-less” object, storing a reference to the content in the other repository.  He said you could even index the object in Lucene/SOLR, but you’d need to write some custom code to pull it in.

Overall, it was a good day.

Alfresco DevCon – Activiti in Action

November 14th, 2012 by mbarsic

Carlos Miguens gave a whirlwind tour of how to create custom workflows in Alfresco using the Activiti workflow engine.  It was a lot of material.  And it was really too much to cover in three hours, but I have the finished code and a good understanding of how it fits together from Carlos.   Overall, I should be able to create a decent Alfresco-Activiti workflow from what I learned today.

Alfresco DevCon – Application Development from the Ground Up

November 14th, 2012 by mbarsic

This was a good training session from Rich McKnight that covered steps to think about when implementing a new custom project in Alfresco.  He based the discussion on something IT people have direct experience with – a client support ticketing system.   As a group we discussed the content and users of the the system, and how they would map into Alfresco from  information architecture, security/role and lifecycle/operation perspective. Rich led the discussion into different implementation options and discussed why he would choose one over another.

He also offered lots of nuggets of knowledge about Alfresco, e.g.,recommended: no more than 5000 direct descendents of a folder; consider using a ContentPolicy instead of rules/actions for global actions on content plus the ContentPolicy is transactional; consider using AttributeService to help enforce unique meta-data

The AttributeService offers a key-value mapped to the database.  It allows up-to-3 segment for the key (e.g., application-ticket-number) and one value (e.g., node ref).

And these are some development best practices, Rich offered.

  • Think deliberately about namespacing, extensions package names to prevent conflict; guidelines to prevent conflicts
  • Use AMPs (share and repo): no way to uninstall AMPS – point of time, not progression; go back in time to previous WAR; careful – AMPs change repository
  • Use Tomcat shared area for configuration type issues; AMP for application (ContentModels, WebScripts)
  • Automated build with Ant (in dev mode; no backups and force no version number)

Rich also provided some code samples for the whole support ticket system.

Banner, Luminis and Imported Groups

June 9th, 2009 by mbarsic

This is good thing to know – Banner’s ICGORGMK process creates a file that can be loaded into Luminis as an imported group

  1. Create a popsel
  2. Run ICGORGMK using your popsel
  3. Transfer the resulting XML to a Luminis admin
  4. Luminis admin runs: “cptool import segment XML_FILE”
  5. Communications sends a targeted announcement to the newly imported group

I find it just as simple to run some SQL to create the XML file or to create the file based off a spreadsheet containing banner IDs.  The format is pretty simple:

<SEGMENTS>
<SEGMENT name=”SomeName” description=”Some description” expiration=”YYYY-MM-DD”>
<MEMBER field=”SCT.ID”>[FULL_BANNER_ID_1]</MEMBER>
<MEMBER field=”SCT.ID”>[FULL_BANNER_ID_2]</MEMBER>
</SEGMENT>
</SEGMENTS>

So via SQL, do something like this, then add your opening and closing SEGMENT and SEGMENTS:

select ‘  <MEMBER field=”SCT.ID”>’ || SPRIDEN_ID || ‘</MEMBER>’ from spriden where CONDITIONs…

Finally, if it’s a group that needs to be added regularly, write some SQL, name the group and add it to wokscad.P_GenerateTargetedGroups.  It will be added to our Luminis instance once a week on Tuesday mornings.

Summit 2009 Day 4

March 30th, 2009 by mbarsic

The first session of the day was “Designing Future State Architecture.” This was very different than what I expected, but it was a great session. It was geared toward management. I’ll try to summarize it to a few key points, but you may want to find the session and listen to it. It was about more than just technology. They talked about linking the services your institution offers, with the business process that support those services to the resources to the infrastructure. Before you really get started, you need to inventory what you have, and what it’s capable of doing. Then you use the inventory along with services you want to offer to develop your future state, or where you want to go. You revise and adjust it as you progress.

I asked for suggestions of schools that do this and of course they brought up MIT – http://web.mit.edu/itag/.

The next session I went to was “Load Testing the UDC.” When we get a QA person in, this would be good to review. Basically, the presenter covered a lot of topics that we discovered while load testing our Luminis 4 implementation with JMeter – virtual users, mock data, ramp up time. She did mention Banner API scripts for loading test that we should look for. They should be on the SGHE support site.

Finally, I gave my presentation, Luminis as a Java Web Application.

Summit 2009 Day 3

March 30th, 2009 by mbarsic

Anita and I kicked off the day with our Managing Banner Security presentation. This was fun. We thought we were in a nice 150 person room, but no, they moved our session to a 400 seat auditorium. It went well and we had plenty of questions at the end of it. Next, I stopped in the exhibitor hall and I had a couple people from our session stop me and ask questions there.

I attended Erin’s “Shake the Roots: Portal revamp in 5 steps” session. I went just in case of technical questions. Erin described our portal upgrade and redesign. She did a fantastic job. I only needed to help with one question about our strange e-mail configuration. I got comments from a few schools about how good her presentation was.

Next, I went to “UDC User Interface Roadmap.” SGHE is focusing on creating a better user experience and better navigation. They’re also trying to make their products appear more “unified.” This is involving a switch to Flex in some areas and/or the use of AJAX in others. They are also trying to make better use of CSS to make the existing SSB pages fit in more. The presenter suggested getting familiar with Eclipse/Flex Builder and perhaps Eclipse/Aptana for AJAX development.

Finally, I went to The Future Banner Architecture. This covered some of that same territory at the UDC technical opening session but more in depth. A few concepts that they’re focusing on are SOA, configuration and extensibility. They developing with a model-driven-architecture implemented with Spring/Hibernate/JPA. He talked about some of the development benefits SGHE is getting from this, such as design-by-contract and the use of mock objects. They are also working to consolidate business rules and making it easier to manage and modify them – this fits in well the “configure-over-program” methodology. I’m liking what I’ve heard. They’re sounding more like the Pragmatic Programmers, which should be a good thing.

Summit 2009 Day 2 Part 3

March 30th, 2009 by mbarsic

UDC Architecture and SOA

I was a little bored by this session as the presented focused in on some topics that I’m already aware of.  Plus he went into the PL/SQL APIs to WebServices (which we’ve a done a POC with Oracle tools a couple years ago).  He did recommend a book I’ll look into “SOA Patterns.”

PCI Implementation

This was a great session since Banner is dropping payment support.  It was a little scary too.  It talked about PCI compliance and how the new rules are affecting colleges. I picked up a lot of interesting bits – e.g., compliance is by institution (not merchant), don’t keep cardholder data (on the Web side we don’t), new rule that “vulnerable” applications should be desupported on 10/1/2009 (ouch!).

Basically, this should be a finance driven project process with assistance from IT.   The presenter specifically said that “validation is at a point in time” and things change everyday.  Here’s his blueprint:

  1. CFO/VP level sponsorship
  2. Finance/IT Team
  3. Limit PCI scope
  4. Train and Communicate
  5. Create a breach response plan, e.g. two institution types – those who have had CC breaches and those that will have breaches.

I spoke with Michelle after this session for about a half hour – we should start looking at this very soon.

The rest of the day I spent working on my presentation and cleaning up some work issues.  I also spoke with Ted S.  a little bit and picked up some interesting ideas from him.

Summit 2009 Day 2 part 2

March 25th, 2009 by mbarsic

Luminis Platform 5 Architecture

The presenter went through this in a lot more detail, but let me give you the key thinsgs.

  1. Java 1.6 (they are trying to stay with an up-to-date Java now)
  2. Tomcat is the app server
  3. All implementation will be parallel deployment even if they only have one node.  They’re using the TerraCotta project to keep JVMs in sync.
  4. The administration will be done on a standalone Web App and will use flex components instead of HTML.
  5. Configuration will take advantage of JMX and that couple with TerraCotte will allow for configuration changes without restarts.
  6. The platform will be using the following libraries Spring, Hibernate, Apache CXF, Jackrabbit (a lightweight CMS).  They’ve been testing with MySQL and Hypersonic in addition to Oracle because of the use the Hibernate ORM library and JPA.
  7. Channel development will need to be JSR 168/286 – no more uPortal style Java channels.
  8. Channels will also make use of RESTful Web Services coupled with Flex or AJAX – and we already know how to do this.
  9. Liferay is the underlying portal structure.
  10. CAS will be the baseline authentication.
  11. CPIP will be deprecated but GCF is not.
  12. GA release is targeted for early 2010.

There’s more I could write about this one, but that’s enough for now.

Summit 2009 – Day 2 part 1

March 24th, 2009 by mbarsic

Using Google Analytics with Luminis

Looks nice and easy to do.  We should probably start doing this in the real MySCAD in preparation for the PSP.  We’d need to sign up for an account and add some JavaScript to the nested-tables.xsl file.   This college used filters to identify the active tab and produce a little more meaningful stats.  The active tab is available through a query string attribute called “activeTab”  We just need to map the activeTab code to meaningful string and write a regular expression in a Google Analytics filter.

Luminis Platform 5 Architecture

This will be a major change.  It looks like uPortal is gone and replaced with the Liferay portal framework.   On the plus side, they’re using RESTful Web Services and Flex/AJAX as a way to develop channels .  I’ll post more about this later…