An overview of Nereus and it's architecture

Posted on July 23, 2008 23:20 by Michael

In this my first 'technical' post on this blog I want to simply introduce Cortexa's hosted learning environment with a short high level overview of what Nereus is, the architecture design applied and the technologies used.

Although I plan for many of the technical posts on this blog to be generic to programming and systems architecture, they will often be based on our experience with designing and developing the Nereus learning solution and I thought this would be a useful reference for future posts.

So what is Nereus?

I have often found it a little difficult to describe our Nereus environment/solution without sounding like I have swallowed a marketing "how to" book, so apologies in advance and here goes...

PoweredByNereus

Nereus is an integrated, content managed, hosted learning environment allowing tracking and management of individual learner’s activity across an organisation. The Nereus solution brings together e-learning delivery and management, classroom and distance learning management, and knowledge base and collaboration features such as document libraries, discussions, blogs and wikis.

See I warned you! It may sound like marketing spiel but it does aptly describe the concept of Nereus.

The current Nereus offering consists primarily of the following elements:

  • Nereus Framework
    The Nereus Framework is the core engine of Nereus and effectively comprises of the data, business and service layers of Nereus' multitier architecture.
  • Course APIs
    In addition to supporting aspects of the SCORM specification, Nereus has it's own course API for allowing learning module or resource usage to be tracked and analysed. This API is used by all Cortexa developed learning content as well as several third party vendors that target Nereus Academies.
  • Nereus Portal (also referred to as a Nereus Academies)
    Users of Nereus primarily access functionality through the Nereus Portal which is a web application that provides the web based user interface. Although the portal is a single web application it supports any number of individual academies each of which have their own sand boxed data and unique UI design and customisation.

Nereus Academy Samples

Sample Nereus Academies (Nereus portal instances)

Nereus Architecture

Nereus is designed with a multitier architecture where we have four distinct layers which can be optionally distributed over three tiers (physical boundaries); Presentation Tier, Service+Business Tier and Data Tier. Below you can see a diagram representing our multitier architecture.

Nereus Tier Architecture - For Blog Post v1

Nereus Architecture Diagram

This service architecture has the standard data, business and presentation layers you see in many a multitier design but with our third generation of Nereus, soon to be launched, we have added a Service Layer which incorporates SOA (Service-Oriented Architecture) into the design (we have also re-factored the business and presentation layers considerably to take advantage).

This new service layer enables us to have a common service-based interface to the Nereus Framework for all of our own client applications (i.e. Nereus Portal, internal admin tools and future desktop apps and tools) as well as providing selected functionality to our customers IT infrastructures (i.e. Peoplesoft or SAP integration) and to any third parties that we may partner with in the future.

Technologies & Tools

Finally a quick look at some of the technologies and tools used in the development of our Nereus solution (for Nereus V3).

  • Windows Server 2008 + IIS7
  • .NET Framework 3.5 (.NET 2.0 used in previous versions)
  • Windows Communication Foundation (WCF)
  • Enterprise Library (Jan 2005)
  • ASP.NET 3.5
  • ASP.NET Ajax (inc. ASP.NET AJAX Control Toolkit)
  • SQL Server 2005 (utilising Stored Procedures)
  • Visual Studio Team System 2008 Development Edition
  • Team Foundation Server 2008
  • Written largely in C#

On this my initial post, I want to start with an explanation to the somewhat grandiose title of this blog. You see, Cortexa's brand slogan is 'Building Web Intelligence' and so it was only natural that we would reflect the corporate identity in the naming of our corporate blogs of which there is this technically focused one (Technical Intelligence Blog) and a corporate learning focused one (Learning Intelligence Blog) written by Cortexa's Managing Director, Mark Parrish.

However, with corporate branding aside, I feel the title of this blog is apt because I do indeed intend to write technical content which is intelligent in the true sense of the word. Please don't misunderstand me, I am not claiming to be particularly intelligent myself, nor should you expect to find technical content of rocket science proportions on here, but simply content which will hopefully be insightful and purposeful relating to software development which has been born out of our own real world experiences.

The actual definition of intelligence is "The faculty of thinking, reasoning, and acquiring and applying knowledge". As we at Cortexa develop our own software solutions, some of which are e-learning focused and some are not, we naturally go through this process of thinking, reasoning, acquiring and applying which ultimately results in experience and it is this experience that I seek to share on this blog as time permits me.

In summary then... with this blog I simply aim to share some of my knowledge of e-learning technical solutions as well as general software development and architecture experiences and as much as possible with a real world application.