TELS Logo Banner Banner

Java Runtime Services

This is place to store information about the services related Pod beans, as well as to alternative runtimes environments, and the different parts of those runtime environments.

Examples of runtime environments:

  • Student Runtime launched from portal
  • Preview runtime launched from authoring tool during authoring.
  • Userdata Debugging runtime launched to test userdata creation.

Service interfaces and classes:

net.sf.sail.core.session.SessionDataService

  • provides the offering
  • returns UserS from userids
  • returns AgentService given a SessionContext

net.sf.sail.core.session.SessionConfiguration

  • provides session uuid, participants (UsersUuidS), SessionDataService

net.sf.sail.core.session.SessionFactory

  • given a SessionConfig it returns a SessionContext
  • it has 2 types of contexts : LearningSession and BasicSession

net.sf.sail.core.beans.SessionContext

  • implements BeanContextServices through BeanContextServicesSupport
  • contains SessionContext.ServiceProvider that implements BeanContextServiceProvider
    • provides net.sf.sail.core.beans.service.SessionService and net.sf.sail.core.beans.service.AgentService
    • it creates a net.sf.sail.core.session.DefaultSessionService for the SessionService
    • the AgentService is setup by SessionContext.setDataService which gets a SessionDataService and calls
      getPersistenceService on it.
  • provides life cycle "services" to the launching framework: initiate, start, tryToTerminate,
  • provides startTime, stopTime, sessionId, sessionDataService, getOffsetMilliseconds

java.beans.beancontext.BeanContextServices

  • provides an interface to beans needing services.
  • contains BenContextServiceProviderS that are delegated to when a service is requested by a bean

Current launch sequence for preview

  1. PreviewSessionConfiguration is created from a curnitUrl
  2. LaunchGenericSession.launchSession is called with sessionConfig
  3. launchSession shows progress bar gui
  4. create a SessionContext object with SessionFactory.getLearningSession(sessionConfig)
    1. the SessionContext class is instanciated
    2. a SessionDataService is requested from sessionConfig.getSessionDataService()
    3. this is added to the SessionContext object
    4. the offering is returned from the data service and added to the SessionContext
    5. the users are returned from the sessionConfig and added to the SessionContext
    6. the curnit is requested from the offering and assembled
    7. the root pod is found in the curnit and added to the SessionContext
  5. calls session.initiate()
    1. registers ServiceProvider with peer beancontextservices (the peer is probably "this")
    2. fires a SessionEvent.INITIATE
  6. calls session.start()
    1. saves the start time and fires SessionEvent.START

Current launch sequence for pas learner runtime

  1. xml file is passed to LaunchGenericSession.getSessionConfiguration
    1. XmlSessionConfiguration is loaded using XStream from an xml file.
  2. passes this session configuration to LaunchGenericSession.launchSession
  3. continues the same as preview sequence

Java runtime services new design notes

Labels

 
(None)