51
Apple WebObjects: Overview and Applications S. Singh / ECE / UW [email protected]

Apple WebObjects: Overview and Applications S. Singh / ECE / UW [email protected]

  • View
    217

  • Download
    2

Embed Size (px)

Citation preview

Page 1: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca

Apple WebObjects: Overview and Applications

S. Singh / ECE / [email protected]

Page 2: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca

Overview of Presentation

Brief history of web-related technologies Concepts related to web development Intro to WebObjects concepts and structure Major features of WebObjects and Development Video of WebObjects in action on a simple project Example applications developed in ECE and U. Mich Contact Info for future co-development Questions / Comments / Discussion

Page 3: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca

Evolution of Web Technologies

4 different “ages” of Web development abstraction The tools of each age had strengths and weakness WebObjects is the culmination of tool evolution

Page 4: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca

Stone Age: Data Access and Interface embedded in Logic.

Page 5: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca

Stone Age: Data Access and Interface embedded in Logic.

Issues with this approach: Nonprogrammers can’t change a page’s look One page equals one chunk of code... ...Maintaining consistency of UI becomes tough If data source changes, must update code… SQL is error prone and tedious with databases

Page 6: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca

Bronze Age: Data Access embedded in Logic embedded in Interface

Page 7: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca

Bronze Age: Data Access embedded in Logic embedded in

Interface

Instead of putting HTML into code, it puts code into HTML with custom (non HTML-standard) tags

This allows non-programmers to edit HTML pages But, does not address the Stone Age’s other two

issues: Logic sharing and data source fragility

Page 8: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca

Industrial Age: Data Access embedded in Logic separated from Interface

Page 9: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca

Industrial Age: Data Access embedded in Logic separated

from Interface

Move application Logic out of Interface: separation Subsequent interaction thru a well-defined channel

simplifies Logic & Interface maintenance Each benefits from the independence: Logic

becomes clearer; both increase their reusability. Result is: server-side application server but still

dependent on data-source specific code

Page 10: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca

Information Age: Data Access separated from Logic separated from Interface

Page 11: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca

Information Age: Data Access separated from Logic separated

from Interface

Separating Data Access from Logic solves the data source fragility issue because it leads to...

A natural and efficient separation of talents: Page/UI Designers, Programmers, & DB admins

WebObjects is the most mature and interoperable of the 3 implementations of the info age paradigm

Page 12: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca

Maturing Web Technologies… its time for a “Web Application”

A Web Application is a web-interface version of a traditional application, BUT there are some key differences from a host-based GUI application

Apple Music Store “web app” != Pro/Eng “app”

Page 13: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca

(continued)Maturing Web Technologies…

its time for a “Web Application”

HTML is “stateless” ie. it does not have any kind of “memory” per se… BUT WebObjects fixes this with session objects and persistent storage

Web Applications typically do not have “real-time” interactivity with the user – information is sent the web server from HTML forms, processed, and a new page served in response … repeatedly.

Page 14: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca

Request-Response Loop: The Cycle of Interaction

Page 15: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca

WebObjects User Interaction: “Request-Response Loop”

Based on the notion of a web application being something that uses a web server to serve pages to a user, get information back, do something with it, and then serve more pages until the session is completed.

WebObjects is built around the general idea of a “request-response loop” as a key principle so any web browser can function as a web application interface

Page 16: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca

Overall View of the WebObjects Software Architecture

Page 17: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca

The Main Ingredients of WebObjects on the Server Side

Page 18: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca

The Main Ingredients of WebObjects on the Server Side

WebObjects can be broken down into three elements, starting with sets of Frameworks

Frameworks are collections of very powerful, high-level interrelated classes that together can already implement vanilla WebObjects applications, saving YOU valuable time and increasing efficiency

Frameworks are “class libraries turned upside down” where your application is controlled by the framework, instead of you creating objects.

Your application customizes and extends these related frameworks as needed, so you do much less coding than you would with general class libs.

Page 19: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca

The Main Ingredients of WebObjects on the Server Side

A set of development tools – Apple’s & Eclipse too

A set of deployment tools – provides scalability

Page 20: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca

A Birds Eye View of The WebObjects Frameworks

Page 21: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca

The Four Frameworks

The heart of WebObjects are its frameworks. Four major frameworks, from the bottom-up: JavaFoundation – fundamental data structures Enterprise Objects Framework - storing and

restoring objects to a data store usually a DB WebObjects Framework – app UI & state mgmt. &

to create reusable components in web applications DirectToWeb Framework – creates db/web apps

Page 22: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca

Enterprise Objects Framework (EOF)

Page 23: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca

Enterprise Objects Framework(EOF)

The Crown Jewel of WebObjects! EOF is designed to easily store/restore objects on

demand. Best of breed technology for this task! Data source independence! Objects don’t care how

they are stored, in file / DB; app code stays same EOF takes care of all the details of Object-

Relational mapping – NO SQL to deal with EOF can reverse engineer an existing database to

provide a table-oriented view from which to construct objects

Page 24: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca

WebObjects Framework

The WebObjects Framework attends to the practical aspects, relating to application logic etc, and offers 3 major conveniences:

Automatic State Management – Recall that… HTML is stateless, but WebObjects is stateful.

State management allows WebObjects to serve multiple users with multiple simultaneous Session Objects each distinct from each other.

Page 25: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca

(continued) WebObjects Framework

Automatic Web Form Management - Using WebObjects Builder, bind your Java class’s variables directly to HTML “FORM” input elements

When your page is invoked, the users input has been magically populated into your page’s instance variables.

Page 26: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca

How Web Applications are made with Apple WebObjects

WebObjects applications generate dynamic HTML-based webpages accessed through a web browser in response to user input, some might be stored

WebObjects applications are object-oriented, written in Java & leverage WebObjects frameworks

Your application generates webpages by creating instances of objects called web components, typically built with WebObjects Builder (more on that soon)

Page 27: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca

WebObjects … Web Components… WOComponent

A web component is a combination of a Java subclass of WOComponent and an HTML template.

WOComponent is a class in the WebObjects framework and provides base functionality that subclasses then build upon to do neat things…

Web components can contain any standard HTML elements and components including Flash animations, QuickTime movies, JavaScript programs, and Java applets. Web components also support Cascading Style Sheets (CSS).

Page 28: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca

Component Based Development with WebObjects

WebObjects Builder is used to build template web pages that contain WebObjects components that bind to your application and provide the information needed to generate a HTML page dynamically from the WOComponents and your application logic

Perhaps a video showing this would help?

Page 29: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca

Video: WebObjects Application Development in 15 minutes!

Video shows the creation of a very simple WebObjects blogging application

Note the interaction between the different development tools and the database design

Very little coding is required to implement this simple application due to the power of the frameworks

More complex applications are built using a similar methodology to this simple example

Page 30: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca

Video: WebObjects Application Development in 15 minutes!

Movie steps through: Creating the database Modeling the data Initializing the database Creating a project Defining the user interface Binding the UI to Java code Reading and writing to the database.

Queue video...

Page 31: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca

WebObjects Deployment(hardware and software views)

Page 32: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca

WebObjects Deployment(for system administrators)

woservices - small daemon starts wotaskd at system startup time and then continuously polls wotaskd, checking its responsiveness. If wotaskd becomes nonresponsive, woservices restarts it.

Wotaskd - responsible for keeping a list of running WebObjects processes. wotaskd starts and stops application processes, controls their environment, restarts crashed instances and provides a list of running processes for the web server adapter to pick from (for load balancing purposes).

Page 33: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca

WebObjects Deployment(for system administrators)

JavaMonitor - admin application that acts as a user interface to wotaskd; information about which applications are running, and statistical information.

Page 34: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca

ECE WebObjects Applications: A Quick Set of Examples

Total of 12 applications in use at this time, we will look briefly at 4 of them:

Work Reports Online Survey Online Course Book ECE Inventory

Page 35: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca

Work Term Reports Online

Page 36: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca

Work Term Reports Online

Web-based entry and management of work term report marks for ECE Faculty and Staff markers

Administrative Interface for the Work Term Report Co-Ordinator to gather marking statistics automatically to ensure fair and consistent marking across all ECE report evaluators

Overrides available in the event of mistakes or special procedures

Faster, more efficient report management cycle.

Page 37: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca

ECE Survey

Page 38: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca

ECE Survey Application

Web-based entry and management of ratings for Teaching Assistants, Lab Instructors and Faculty

Tightly coupled to ECE undergraduate courses Handles many user types: student, TA, staff, prof Displays information appropriate to each user Can be expanded to many different types of

surveys to gather information related to ECE program efficacy

Page 39: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca

ECE Course Book Application

Page 40: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca

ECE Course Book Application

Facilitates electronic submission of course files that is more efficient than e-mail with attachments

Originally written to meet the needs of one professor, now expanded in use for potentially all ECE undergrad courses where electronic submission is feasible and appropriate

Also supports student signup for time slots for specific lab stations at allowed times, to ensure maximum utilization of available lab resources

Page 41: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca

ECE Inventory / Loan Application

Page 42: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca

ECE Inventory / Loan Application

Helps to maintain ECE inventory of Fourth Year Design Project assets, available to students to implement their senior engineering projects.

It has allowed the department to reduce the year to year capital costs of the Fourth Year Project phase of the ECE undergraduate program by allowing students to see what is already available, and to re-use equipment purchased previously.

Page 43: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca

Think Big! WebObjects Big!

WebObjects has the enterprise scalability and rich feature set to support the largest high volume sites such as BBC News

What kinds of applications can be designed with WebObjects that would benefit ALL of UW?

Something to think about… But for now … take a look at GVC SiteMaker, an

academic web publishing application built on WebObjects.

Page 44: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca

GVC SiteMaker - An Open Source Academic Web

Publishing Solution from U. Michigan

Built by a team of Apple iServices, University of Michigan, & Global Village Consulting Inc.

Page 45: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca

GVC SiteMaker … A Closer Look for Nonspecialist Users

Designed to remove the difficulties faced trying to put a website into production

Easier than: FrontPage, Dreamweaver or GoLive Requires no special training or experience with

HTML or web-publishing tools. Simple step by step instructions to choose a

website style, type in text and upload images for content, create navigational structure, create password protected pages and files, and of course, publish the website on the World-Wide-Web.

Page 46: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca

GVC SiteMaker … A Closer Look for IT Support Personnel

Various System Administration, access, sharing and security features to help manage many individual websites…

See more at www.gvcsitemaker.com and http://sourceforge.net/projects/gvcsitemaker

Page 47: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca

Invitation to Participate!

UW has a history of excellence in software development:

QNX real-time OS CFX TascFLOW – computational fluid dynamics Maple – computer algebra / symbolic computation RAPTOR – in vivo – protein structure prediction

Can WebObjects be the foundation for the next major UW-based software project? … something for the entire campus or beyond?

Page 48: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca

(continued)Invitation to Participate!

Software Development requires much more than software engineers! Serious Project Work needs:

User Requirements and Performance Specifications User Interface Design and Usability Testing Online Documentation and Training Manuals Systems Documentation for configuration Beta Testers and Quality Assurance Testers System Administrators for OS and web server DB/Oracle Admins: schema design & server tuning Project and Software Lifecycle Management

Page 49: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca

Let Us Know if you’re Interested!

Contact any of the following people if you want to know more about WebObjects or if you have a project idea for the campus and want to pursue it:

WebObjects Applications Engineer: Ricardo Rolon - [email protected] and please CC ECE Lab Director: Bill Ott - [email protected]

Send Informal questions / comments: Sanjay Singh - [email protected]

Page 50: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca

Acknowledgements

Thanks to these people for their help:

Bill Ott - ECE Lab Director / WebObjects advocate

Ricardo Rolon - WebObjects Architect / Developer

Irene Huang - Software Developer / Tester

Ash Mishra - WebObjects Consultant, formerly with ECE and originator of WebObjects within ECE

Page 51: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca

Questions / Comments(time permitting)

Thank you for attending!

S.