What CBT developers need to know about: BROWSERS, PLUG-INS, AND ACTIVEX Why
are Intranets and the Internet so important to CBT developers?
- Centralization
- Central database or server
- Central distribution enables changes and modifications in the content to be made once
- Reduced footprint and maintenance on client computers
- Distributed access
- Content available from any remote node
- Content available 24x7
- Based on open standards
- Cross platform
- High competition
What applications of these technologies relate specifically to CBT?
- Centralization
- Centralized tracking of learner performance and progress (CMI)
- Central distribution enables changes and modifications in the content to be made once
- Reduced footprint and maintenance on
client computers
- Distributed or Distance learning
- Reduced travel costs
- "Just-in-time, Just-enough" training
- Based on open standards
- Cross platform delivery
- Rapid improvements for reduced cost
How can use of an Intranet or the Internet enhance CBT for students?
- Access to content not created by CBT developer
- Time sensitive data is always up to date
- Legal requirements
- Changing product/industry information
What is the difference between an Intranet and the Internet?
- The Internet is a proper noun, it is one thing
- The Internet is an open system of network servers that
can send a retrieve information available to the public;
anyone can contribute an additional web server to
post information that anyone can access
- The developer has no control over the Internet
- Unknown minimum configuration or bandwidth
- An Intranet is a private network based on Internet standards
and protocols
- An Intranet is an internally controlled environment
of web-servers that is accessible in a closed environment
- The developer may have control on an Intranet
- Definable minimum configuration and bandwidth
What is the difference between the Web and the Internet
- The Internet supports many information delivery formats
- Gopher
- Archie
- FTP - File Transfer Protocol
- email - SMTP, MIME
- WWW - HTTP
- The web is one of those formats
- HTTP - Hyper Text Transfer Protocol
- HTML - Hyper Text Markup Language
- Typically viewed in a browser
- An Intranet can support one or all of these formats
What is a browser?
- A language interpreter
- provides a standard look and feel to content
- An object container
- Is extensible by adding new objects
- Allows objects to interact with each other
(Java applet can change the browser,
or page displayed)
What are the ramifications of different ways to
connect to Intranets and the Internet?
- Browser based
- Training and objects are viewed inside a browser
interface
- Non browser based
- Other tools use Internet protocols to send/receive
content and data
What are plug-ins and helper apps and why are
they important?
- Plug-ins are language interpreters that gives your browser
additional embedded functionality (Shockwave)
- Helper applications are another form of a language
interpreter that allows you to view a file-type outside of
the browser (Screen Cam or existing applications)
- They are important because they extend the standard
functionality
of browser
What are the differences between plug-ins and helper apps?
- Plug-ins run inside the browser, and are security limited
(cannot write to the local hard drive)
- Helper applications run locally, and have local access
(can access the CD-ROM drive)
What can one do with plug-ins and helper apps?
- Launch a pre-existing CBT as a helper app
(to allow integration with other Web based content)
- Extend pure HTML by integrating interactivity
Where does one get pre-written plug-ins and helper apps?
What are the differences between various browsers?
| Feature |
Internet
Explorer 4.0 |
Netscape
4.0 |
| Java Support |
JIT |
JIT |
| Scripting Capabilities |
JavaScript 1.1, VB Script,
ActiveX |
JavaScript 1.2 |
Multimedia
*supported as plug-in |
AIFF, AVI, MPEG, QuickTime, VRML,
WAV |
AIFF, AVI, MPEG*, QuickTime,
VRML, WAV |
| Platform Support |
Win 3.1, Win95, WinNT, (Mac) |
Win 3.1, Win95, WinNT, Mac, UNIX |
How does one do Intra/Internet CBT without using a
browser?
- The development tool must export to a Web supported
format or allow Web files to be retrieved and displayed
in the tool
- Visual basic has OCXs that allow embedding a browser
- IconAuthor support HTML objects, and HTTP address
for any file type
- Authorware can be "shocked" for Web delivery
- ToolBook can create training in native Java and HTML
How can one control access to specific links students
should not be able to browse to?
- When using a CBT system with HTML capabilities,
the training can evaluate what link has been selected
and allow/deny access to that link
What is ActiveX and why is it important?
- It enables you to create and reuse customized controls
- It can be created with tools that programmers are
familiar with
What are the primary benefits of ActiveX?
- Active web content with impact
- Cross-platform support
- Developed with familiar tools
- Abundance of controls available
What can ActiveX do?
- Controls - Interactive Objects
- Documents - Can view non HTML documents
- Scripting - Controls integrated in browser or server
- Server Framework - Provides web server-based
functions such as security, database access, etc.
What is an ActiveX control?
- ActiveX Controls are the interactive objects in a
web page that provide interactive and
user-controllable functions to a web site
Where can I get ActiveX controls?
Chronology of Internet Tool Development
- HTML (Hyper Text Mark-up Language)
- CGI (Common Gateway Interface) programs (or scripts)
- Plug-ins and Helper Apps
- Java and Java Script
- OLE Á OCX Á
ActiveX (figure at right by Brockschmidt)
What is HTML?
- The basic language for specifying web page content
- http://home.netscape.com/eng/mozilla/3.0/handbook/authoring/navgold.htm
- Viewable from any web page by pulling down the
View menu and selecting Source
- As an extension of SGML (Standard Generalized
Mark-up Language)
- http://www.thomson.com/itcp/liora/la_home.htm
- Overall format category of a document component, vs.
its exact style
What about the Hypertext element?
- Component connectivity
- One-way vs. two-way links
- Difficulty in maintaining the accuracy of ones links
Does one really need to learn HTML to develop for
the Internet?
- HTML generators
- WYSIWIG vs. WYSISWYG - What You See Is Seldom
What You Get
How does one develop large-scale applications for
the Internet?
- Not by ones self!
- And not without a structured system to help manage
the many components
What is a CGI program (or script)?
- An application typically developed in
C or C++ or Perl
- Run from a Web page as a subprocess, i.e., as
a spawn rather than a jump
- Runs external to the browser, on the server rather
than on the users system
- User must wait for program to complete before
receiving results
How does one write a CGI program?
- Standard development tools
- C and C++ for virtually all platforms
- Perl, a super shell scripting language
How does one write one's own plug-ins and helper apps?
- Standard development tools again, but customized to
"fit" with the browser
- Plug-ins extend the browser, therefore they must run
within it
- Plug-ins are intended to have a seamless interface
between the browser
- The user may not even realize that s/he is executing
a plug-in
- Therefore browser vendors provide an API
(Application Programmer Interface) to make it
possible for the plug-in to "play" with the browser
- To see loaded plug-ins in Netscape, pull down the
About menu and select Plug-ins
- To see registered helper apps in Netscape, pull down
the Options menu and select General Preferences
Click on the Helpers tab to see list of helper apps
Summary of CGI programs, Plug-ins, and
Help Apps
| ATTRIBUTE |
CGI
PROGRAM |
PLUG-IN |
HELPER
APP |
| Where It Runs |
On server. |
On local machine. |
On local machine. |
| Browser Involvement |
Not involved. |
Must be loaded in
browser. |
Must be registered
with browser. |
| Development Language |
Typically C, C++, Perl, but could
be any language that runs on the server. |
Any language that can generate a
program that can be loaded into the users browser. |
Any language that can generate a
program that can be run on the users machine. |
| Browser Interface |
Browser pauses while program
runs, although the user may not notice the pause. |
Seamless interface between
browser and program. |
Browser pauses while program
runs. |
| Examples |
Counter programs (very quick),
form processors (slower). |
Shockwave, PowerPoint slide
viewer. |
Downloads, Microsoft Office apps. |
What are Java and Java Script?
- Java is a programming language that that is not bound
to any operating system
- Java Script is a language that is embedded within an
HTML page or a Java
applet that can send commands to a browser
What are the differences between the two?
- Java requires a compiler like Microsoft Visual J++
- Sample code for a Memory Manager demonstration
- Java Script can be run right from your browser
- Sample Java script code excerpt to display a message in the Netscape status bar
- Can be seen on http://www.channel1.com/artisan
- Actual file is http://www.channel1.com/artisan/statustext.html
What is ActiveX and what are ActiveX Controls and ActiveX Documents?
- ActiveX is an open platform for creating, dynamic content and applications
for the Internet/intranet.
- ActiveX controls (formerly OLE controls) are objects that can be inserted into
Web pages or any other application that is an ActiveX control container.
- ActiveX documents can be displayed by Web browsers or document viewers.
How does one write one's own ActiveX controls?
- VB 5.0 Control Creation Edition (easy)
- VB 5.0 Professional Version (more functional)
- Visual C++ and J++ (difficult)
"ActiveX Arsenal" - ActiveX Development
Tools
Source: Windows Sources, January 1997, p. 172
| LANGUAGE |
PROS |
CONS |
| C++ |
Best access to ActiveX APIs.
Fastest, most compact code. Widely known by OLE developers. Many implementations. Lots of
mature development aids. |
Hard to learn, write, and
maintain. Language additions (such as namespaces) show up at different times in different
vendors compilers. |
| Delphi |
Productive, easy-to-maintain
language. Excellent integrated tools. |
Proprietary language. Requires
third-party utilities to generate ActiveX controls from Delphis VCL format. |
| Java |
Highly portable. Intrinsically
secure. Eliminates many sources of programmer errors in C++. Many implementations; all
conform to the SunSoft specification. |
Performance varies by platform,
ranging from near-C++ to little better than Visual Basic. Immature: Different
implementations may yield different results. |
| Visual Basic |
More widely known than any other
single development tool. High productivity for coding GUI applications. |
ActiveX generation facilities are
forthcoming in Version 5.0, so maturity issues may arise. Compute-intensive performance is
inferior to that of other languages listed here. |
"Set Your ActiveX Strategy" - Choosing ActiveX
or Java
Source: Windows Sources, January 1997, p.
176
| GOAL |
ACTIVEX |
JAVA |
| Deliver on any mainstream
operating system or processor hardware. |
Good |
Excellent |
| Run at native speed. |
Excellent |
Fair |
| Offer users intrinsically save
execution of untrusted code. |
Very poor |
Excellent |
| Give users Internet/intranet
access to application-specific file formats. |
Excellent |
Good |
| Use developers existing
language/tool skills and experience. |
Excellent |
Poor |
| Let you choose from a wide range
of low-level and high-level development tools. |
Excellent |
Fair |
|