Www.cfconf.org/fusebox2004/ Mach-II Primer Ben Edwards An Introduction to Mach-II: An event-based, implicit invocation web-application framework.

Slides:



Advertisements
Similar presentations
Apache Struts Technology
Advertisements

Web Applications Development Using Coldbox Platform Eddie Johnston.
OOP Design Patterns Chapters Design Patterns The main idea behind design patterns is to extract the high level interactions between objects and.
Computer Monitoring System for EE Faculty By Yaroslav Ross And Denis Zakrevsky Supervisor: Viktor Kulikov.
Transparent Robustness in Service Aggregates Onyeka Ezenwoye School of Computing and Information Sciences Florida International University May 2006.
MVC Nick Lopez Duplication of course material for any commercial purpose without the explicit written permission of the professor is prohibited.
Introduction To System Analysis and Design
James Tam Introduction To Design Patterns You will learn about design techniques that have been successfully applied to different scenarios.
Object-Oriented Analysis and Design
Developed by Reneta Barneva, SUNY Fredonia Component Level Design.
Application Architectures Vijayan Sugumaran Department of DIS Oakland University.
Apache Struts Technology A MVC Framework for Java Web Applications.
Overview of Framework by Ahamed Rifaudeen A. page - i Steps before entering into the Framework?  Basic knowledge of object-oriented programming (OOP)
UNIT-V The MVC architecture and Struts Framework.
Model-View-Controller Architecture in a Systems Analysis and Design Course Dr. Robert F. Zant Illinois State University.
Behavioral Patterns  Behavioral patterns are patterns whose purpose is to facilitate the work of algorithmic calculations and communication between classes.
MVC pattern and implementation in java
A Scalable Application Architecture for composing News Portals on the Internet Serpil TOK, Zeki BAYRAM. Eastern MediterraneanUniversity Famagusta Famagusta.
Flash Remoting Chafic Kazoun Senior Flash Developer - B-Line Express Work: Play:
Frameworks: Mach II or Fusebox 4? Sean A Corfield Director of Architecture Macromedia, Inc.
MVC and MVP. References enter.html enter.html
Model View Controller (MVC) Rick Mercer with a wide variety of others 1.
Copyright © 2012 Accenture All Rights Reserved.Copyright © 2012 Accenture All Rights Reserved. Accenture, its logo, and High Performance Delivered are.
An Introduction to Software Architecture
® IBM Software Group © 2007 IBM Corporation J2EE Web Component Introduction
JSF Introduction Copyright © Liferay, Inc. All Rights Reserved. No material may be reproduced electronically or in print without written permission.
Requirements To Design--Iteratively Chapter 12 Applying UML and Patterns Craig Larman.
©2003 The Fusebox Corporation Fusebox MX Hal Helms.
SOFTWARE DESIGN (SWD) Instructor: Dr. Hany H. Ammar
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 Architectural Styles.
Systems Analysis and Design in a Changing World, 3rd Edition
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
Navigation Framework using CF Architecture for a Client-Server Application using the open standards of the web Kedar Desai presented by.
Java Web Development with NetBeans IDE -- Kai Qian Chapter 5 JavaServer Faces (JSF) Technology.
CS 4850: Senior Project Fall 2014 Object-Oriented Design.
JSP Tag Libraries Lec Last Lecture Example We incorporated JavaBeans in “Course Outline” Example But still have to write java code inside java.jsp.
Struts Framework Anna Paščenko. What is Struts?  An open source framework for building Java web applications.
Model View Controller MVC Web Software Architecture.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 13. Review Shared Data Software Architectures – Black board Style architecture.
Model View Controller (MVC) Bigger than a Pattern: It’s an Architecture Rick Mercer with help from many of others 1.
5.0 Objects First with Java A Practical Introduction using BlueJ David J. Barnes Michael Kölling.
Jini Architecture Introduction System Overview An Example.
Java EE Patterns Dan Bugariu.  What is Java EE ?  What is a Pattern ?
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
MVC WITH CODEIGNITER Presented By Bhanu Priya.
1 Copyright © 2004, Oracle. All rights reserved. Oracle Application Development Framework.
Mach II at Macromedia Sean Corfield Director, Architecture An introduction to Mach II and its use on macromedia.com.
Chapter 9 Web Application Design. Objectives Describe the MVC design pattern as used with Web applications Explain the role and responsibilities of each.
CSIS 4850: CS Senior Project – Spring 2009 CSIS 4850: Senior Project Spring 2009 Object-Oriented Design.
Model View ViewModel Architecture. MVVM Architecture components.
Copyright 2007, Information Builders. Slide 1 iWay Web Services and WebFOCUS Consumption Michael Florkowski Information Builders.
APACHE STRUTS ASHISH SINGH TOMAR ast2124. OUTLINE Introduction The Model-View-Controller Design Pattern Struts’ implementation of the MVC Pattern Additional.
Mach-II Intro Macromedia MAX 2003 Stephen Rittler CounterMarch Systems.
Expense Tracking System Developed by: Ardhita Maharindra Muskan Regmi Nir Gurung Sudeep Karki Tikaprem Gurung Date: December 05 th, 2008.
Architectural Mismatch: Why reuse is so hard? Garlan, Allen, Ockerbloom; 1994.
Basic Characteristics of Object-Oriented Systems
Apache Struts Technology A MVC Framework for Java Web Applications.
Thomas Burleson. Using MVC with Flex & Coldfusion Projects June 27, 2007 See how Coldfusion MVC is similar to Flex MVC…
Cake PHP – OOPS approach for PHP
Web Technology Solutions
MVC Architecture, Symfony Framework for PHP Web Apps
Delegates and Events 14: Delegates and Events
Observer Design Pattern
Processes The most important processes used in Web-based systems and their internal organization.
Unit 6-Chapter 2 Struts.
The Object Oriented Approach to Design
The Model Layer What is Model?
Software Design Lecture : 15.
An Introduction to Software Architecture
Architectural Mismatch: Why reuse is so hard?
Presentation transcript:

Mach-II Primer Ben Edwards An Introduction to Mach-II: An event-based, implicit invocation web-application framework

Mach-II Primer Mach-II Introduction  Mach-II is a framework for writing object- oriented web-applications  Key Mach-II concepts:  Object orientation  Model-View-Controller (MVC)  Implicit Invocation

Mach-II Primer Mach-II Introduction  In a web-application, Mach-II facilitates communication between the web interface and business objects: Web Interface (.cfm files, Flash movies) Mach-II Business Model (CFCs, WebServices)

Mach-II Primer Mach-II: MVC  Mach-II implements the Model-View- Controller (MVC) design pattern  The goal of MVC is to keep business logic and presentation logic independent of each other  MVC components are grouped in the following categories:  Model: business logic, data access  View: user’s perspective (HTML and CFM files)  Controller: mediation between model and view

Mach-II Primer Mach-II: MVC  Mach-II acts as an application’s controller, directing interaction between model and view components: Web Interface (.cfm files, Flash movies) Mach-II Business Model (CFCs, WebServices) VCM

Mach-II Primer Mach-II: An OO Framework  Mach-II is an object-oriented (OO) framework  Mach-II for ColdFusion is built entirely in CFCs  Mach-II development includes using framework components (CFCs) that will be extended and specialized

Mach-II Primer Mach-II: Object-Oriented  With Mach-II developers write components that extend core framework objects (CFCs)  Mach-II components:  Encapsulated, self-contained  Cohesive, have singularity in purpose  Follow CFC coding best-practices

Mach-II Primer Mach-II: Implicit Invocation  Mach-II uses an implicit invocation architecture  Implicit invocation is a software architecture for writing highly flexible, maintainable applications  In an implicit invocation system, business objects communicate with other objects via events  Listeners are business objects that respond to events

Mach-II Primer Mach-II: Implicit Invocation  Events are used to communicate between layers: Web Interface (.cfm files, Flash movies) Mach-II Business Model (CFCs, WebServices) Event

Mach-II Primer Mach-II: Implicit Invocation  Implicit invocation components:  Events – encapsulate information needed to perform an action  Listeners – business components that are notified when events occur; can also announce events  Event-handlers – define how to handle an event when announced

Mach-II Primer Mach-II: Responsibilities  Mach-II framework main responsibilities:  Encapsulate requests into events  Handle all events processed for a request  Notify listeners of events  Mach-II developer main responsibilities:  Define events the framework can respond to  Define event-handlers to handle events when they occur  Define listeners to perform business logic

Mach-II Primer Mach-II: Events  Events encapsulate the information needed to perform an action in a Mach-II application  Events can be announced by external requests to the framework (e.g. URL or form submission) or by components of the Mach-II framework  An event is an encapsulation of a requested action and any data associated with that request  URL data  form data  etc.

Mach-II Primer Mach-II: Events  Events contain:  name – the name of the event  args – the information in the event used by listeners  Event definitions should be documented during design  Example events (name: args):  registerUser: firstName, lastName, Address  addToCart: shoppingCart, product, quantity  newUserRegistered: newUser

Mach-II Primer Mach-II: Event-handlers  Event-handlers are created by the framework to respond to events  Developers define event-handlers in an XML configuration file  Example event-handler XML:

Mach-II Primer Mach-II: Listeners  Listeners components are notified when certain events occur to perform business logic  Listeners are implemented as objects (CFCs)  New functionality can be introduced simply by adding and registering new listeners (or new methods in existing listeners)  Because listeners know nothing about each other (loose coupling), changes to existing business logic entails less risk of introducing bugs into the application

Mach-II Primer Mach-II: Event Lifecycle OK Mach- II Login formis submitted to Login Event userName: joe password: machii creates a mach-ii.xml reads AuthenticationListener invokes is passed to LoginSuccess Event LoginFailure Event announces specifies Username: Password:

Mach-II Primer Mach-II: Request Handling  When Mach-II receives a web-request it will translate it into an event object  Consider the following request: ../index.cfm?event=registerUser&firstName=Bo b&lastName=Smith  The result is an event named registerUser with two arguments: firstName (Bob) and lastName (Smith)

Mach-II Primer Mach-II: Event Handling  Mach-II can handle multiple events per request  Events are handled on at a time, in a queue (first in, first out) sequence  When an event is announced, it is placed at the bottom of the queue

Mach-II Primer Mach-II: Code  A typical Mach-II project will consist of:  An XML configuration file (mach-ii.xml)  ColdFusion components for performing business logic  ColdFusion pages for user interaction

Mach-II Primer Mach-II: Other Components  We’ve already covered events, event- handlers, and listeners. Other Mach-II components include:  Plugins – used in the Mach-II framework for customizing application wide functionality  Event-filters – reusable framework objects that can manipulate events and how they are processed

Mach-II Primer Mach-II: Primer Review  Mach-II is an object-oriented framework, so much of the coding will be in CFCs that extend Mach-II components  We’ll be writing Mach-II code as:  CFCs (for business logic)  CFM templates (for presentation logic)  XML files (for configuration/controller logic)

Mach-II Primer Mach-II: Process  A high-level overview of a Mach-II development process: 1.Develop prototype pages and page flow 2.Identify events that will drive the application 3.Identify objects needed to perform business logic (object model) 4.Identify listeners and other Mach-II components

Mach-II Primer Mach-II: Resources  The Mach-II website, contains:  Documentation  Mach-II Configuration Guide  Mach-II Request, Event, and Error Handling  Articles  Mach-II How To Series  Introduction to Implicit Invocation  Consulting and Training  Forums and Mailing Lists