Download - Web based Learning with CORBA
Web based LearningWeb based Learningwith CORBAwith CORBA
ByBy
POON Ping-yeung POON Ping-yeung
Traditional LearningTraditional Learning
Learner-centered EnvironmentLearner-centered Environment
Computer-aided LearningComputer-aided Learning
StaticStatic One-to-one communicationOne-to-one communication Difficult to scale upDifficult to scale up Proprietary softwareProprietary software Inefficient search toolsInefficient search tools
Web-based EnvironmentWeb-based Environment
Faster TrainingFaster Training Reduce / No travel costsReduce / No travel costs Training per head is reducedTraining per head is reduced Just-in-time LearningJust-in-time Learning Extended access through InternetExtended access through Internet Active Learning & student centeredActive Learning & student centered
What is CORBA ?What is CORBA ?
Common Object Request Broker Common Object Request Broker Architecture Architecture
Object Management GroupObject Management Group Middleware SpecificationMiddleware Specification
What is CORBA ?What is CORBA ?
Dynamic Dynamic Invocation Invocation InterfaceInterface
IDLIDLStubsStubs
ORBORBInterfaceInterface
IDLIDLSkeletonSkeleton
Dynamic Dynamic Skeleton Skeleton InterfaceInterface
ObjectObjectAdapterAdapter
ORB CoreORB Core
ClientClient Object ImplementationObject Implementation
Standard Interface
Per-Object Type Generated Interface
May be Multiple Object Adapter
ORB Dependent Interface
What is CORBA ?What is CORBA ?
Java Java ClientClient
C++C++ObjectObject
Java Java ObjectObject
COBOLCOBOLClientClient
CORBA/IIOPCORBA/IIOP
CORBA/IIOPCORBA/IIOP
CORBA/IIOPCORBA/IIOP
OMAOMA
Object Management ArchitectureObject Management Architecture CORBAdomainCORBAdomain CORBAservicesCORBAservices CORBAfacilitiesCORBAfacilities
OMAOMA
Object Request BrokerObject Request Broker
Application ObjectsApplication ObjectsDomain ObjectsDomain Objects
Common Common FacilitiesFacilities
Object ServicesObject Services
CORBA ObjectCORBA Object Legacy Application WrapperLegacy Application Wrapper
Java in CORBAJava in CORBA
Portability across platformPortability across platform Programming in InternetProgramming in Internet Object-oriented LanguageObject-oriented Language Component ModelComponent Model
CORBA in JavaCORBA in Java
Implementation independence interfaceImplementation independence interface Programming language independenceProgramming language independence Location transparency & server activationLocation transparency & server activation Automatic stub & skeleton code generationAutomatic stub & skeleton code generation Reuse of CORBA services & facilitiesReuse of CORBA services & facilities
Java, CORBA and WebJava, CORBA and Web
HTTP HTTP ServerServer
Web Web BrowserBrowser
INTERNETINTERNET
CORBACORBAServerServer
Invoke Invoke CORBA CORBA objectsobjects
Get Get HTML HTML pagespages
Get Get AppletAppletss
Implementation ArchitectureImplementation Architecture
Server - Java applicationServer - Java application ORB - Visibroker for JavaORB - Visibroker for Java Client - Java Applet running in Netscape Client - Java Applet running in Netscape
Communicator 4.6Communicator 4.6 Java application and applets implement Java application and applets implement
with JDKwith JDK
Develop Application with VBJDevelop Application with VBJObject Object Definitions Definitions in IDLin IDL
VisibrokeVisibroker idl2java r idl2java CompilerCompiler
StubsStubs SkeletonsSkeletons
Client Client Program Program written by written by youyou
Object Object ImplementatiImplementationwritten by onwritten by
youyou
Java Java CompileCompile
rr
Java Java CompileCompile
rr
Develop Application with VBJDevelop Application with VBJ
StubStub
Client Client Program Program written by written by youyou
Object Object ImplementationImplementationwritten by youwritten by you
Java Java CompilerCompiler
Java Java CompilerCompiler
Object Object ImplementationImplementation
Client ProgramClient Program
SkeletonSkeleton
Visibroker Object Request BrokerVisibroker Object Request Broker
ImplementationImplementation
ImplementationImplementation
ImplementationImplementation
ImplementationImplementation
Smart AgentSmart Agent
No CORBA specification on bootstrappingNo CORBA specification on bootstrapping Proprietary Directory ServiceProprietary Directory Service Fault toleranceFault tolerance
Smart AgentSmart Agent
3. 3. Object Object ReferenceReference
2. 2. BindBind 1. 1. Pass Pass obj_is_readyobj_is_ready
4. 4. Send Send RequestRequest
ORBORBSmart AgentSmart Agent
ServerServerClientClient
GatekeeperGatekeeper
Java Sandbox problemJava Sandbox problem Proxying capabilityProxying capability HTTP tunnelingHTTP tunneling both directionboth direction
GatekeeperGatekeeper
InternetInternet Internet Client running Java applet
Web Server with Gatekeeper
Server Server ObjectObject
Server Server ObjectObject
Object Activation DaemonObject Activation Daemon
Objects ManagementObjects Management Manual starting and stoppingManual starting and stopping Start object on demandStart object on demand work with implementation repositorywork with implementation repository
Object Activation DaemonObject Activation Daemon
Smart Smart AgentAgent
ClientClientObject
Activation
Daemon
ServerObject
Implementation Implementation RepositoryRepository
Contains Server Contains Server Registrations, Registrations, either done via either done via command line or command line or via API via API
4. 4. OAD starts the Server OAD starts the Server based on its registration in based on its registration in the Implementation the Implementation Repository.Repository.
3. 3. Call is forwarded Call is forwarded to the OAD to start to the OAD to start the serverthe server
1. 1. Since it is a Since it is a CORBA Object, it CORBA Object, it registers with the registers with the Smart AgentSmart Agent
2. 2. bind to Smart bind to Smart AgentAgent
5. client communications directly to the Server Object
Upsides of CORBAUpsides of CORBA
Language and platform independenceLanguage and platform independence Distributed Object TechnologiesDistributed Object Technologies CORBA is OpenCORBA is Open
CORBA‘s ProblemsCORBA‘s Problems
Complexity of DevelopmentComplexity of Development Lack of Full feature development toolsLack of Full feature development tools Cost of DevelopmentCost of Development StabilityStability
ConclusionConclusion
Promising technologiesPromising technologies Ease of scale upEase of scale up Large scale web based learning Large scale web based learning
environmentenvironment Mature development productMature development product
Questions and AnswersQuestions and Answers