Status Report: jini (20-2-2001)


Last Week

Summary:  
 

Ian

  • Got POP3 server up and running
  • Helped integrate storage and POP3 server with Sherif and Boris' components
  • Began work on SMTP server

Sherif

  • Fixed a few bugs in the POP3 Client.
  • Finished working on Setup/Administration.
  • Integration Test1 passed successfully :)

Boris

  • Router now handles events set by lookup services.
  • Activation is almost ready.
  • We successfully tested integration.

This Week

Summary:  
 

Ian

  • SMTP server working
  • Make TSpaces store things persistently (it's only storing stuff in memory right now)
  • Begin work on Fridge

Sherif

  • Still not sure, but we want to make sure our system is stable
    and coherent before we start working on the fridge.
  • Further testing. Preliminary Fridge Implementation

 

Boris

  • Finish working on activation for the router.
  • Add activation to other components.
  • More Testing.
  • Add animator to the router.

Deliverables for next tuesday

Summary:  

Ian

  • SMTP server working
  • TSpaces storing persistently
  • Fridge beginnings

Sherif

  • Initial Fridge Implementation
  • Further testing and debugging
 

Boris

  • Activatable components that handle events (from lookup services.
  • Optimized router.

Time spent

Ian

Please go to my time tracker, click on "Universal Inbox", and log in as "guest" (no password). (I'll work put this page on this site in the future.) 

Sherif

Ian's time tracker contains my information as well.

Boris

Ian's time tracker contains my information as well.

Comments

Ian

Sherif

Boris

          In main():  Create activation group description using the properties that include classpath, codebase, and security policy.  Create an instance of ActivationGroupID using the above          mentioned description.  Using the id and group description, create an activation group (this creates an entry for the group in some rmid registry).  Create an instance of ActivationDesc using the name of the class, codebase, and an instance of MarshalledObject.  Register the service as activatable using the activation description.  Then call getInstance(0) on the created or the reference to service registration.  Exit.  *Note:  Why we need to use group stuff (as in ActivationGroupID versus ActivationID) is something I'm not yet sure of.

          Since this is taking a while, I will cover the rest in far lesser detail.

          It seems that a big part of this activation feature is that the services can deactivate themselves when they are not used.  This has several major consequences in implementation.  First, JoinManager is no longer sufficient because we need to be able to reactivate and process a discovery of a new lookup service.  So we need to use something like Lookup Discovery Service (fiddler, I think) provided with Jini.  It's an entire service and proper communication with it can involve some new problems (such as re-synchronizing service hash tables after a potential missed event).  Also, our service of course can't keep track of leases that need be renewed if it's deactivated.  So instead of lease manager, we have to use Lease Renewal Service (such as sun's norm).  We also have to write some additional support to handle that (although it's a fairly good deal -- we only have to register with it once a day and even then it gives us the wake up call. In return the service renews all our leases for us).  Finally, there is some tricky code involved with deactivating oneself because that should be done only when you're not needed by anyone.

        There need to be some work done with logs.  Most important thing to remember is that a definition of a class we wish to log has become known to us dynamically, we must marshall these objects (save their codebase).

 

Ian Shafer
Sherif Fanous
Boris Startsev