| By Indroniel Deb Roy, Alex Nhu | Article Rating: |
|
| May 23, 2008 02:30 PM EDT | Reads: |
9,013 |
Historically
we have seen the success of plug-in based products like Mozilla Firefox and
Eclipse IDE where new content can be plugged-in at runtime to augment software
functionality. In plug-in based
architecture there is always a base container implementation where other
components are added as plug-ins to extend its functionality; however, in these
solutions there are no extension points exposed in added plug-in components to
interact or bind them together. In this article I discuss the details of a
pattern that is a hybrid of plug-in and event-driven architecture to integrate
individual plug-ins together to come up with a Plug-in Integrator Pattern. This pattern leverages the benefits of both of these well-known
architectures to provide an optimal solution to build enterprise-ready rapid
application development infrastructure, preferably in Flex but it could also be implemented in other programming languages such as Java and C#. I call it a
pattern, not a framework, because it’s abstract and may be implemented in any
software solutions.
The basic need to come up with such a pattern is to integrate already-released software components at runtime and use them to develop new applications with minimal testing and developmental effort and maximize the code reuse. Flex is already becoming the preferred choice while programming RIAs and with the adoption of Flex in the marketplace, many web applications are being written in Flex. It's time to think about how to provide a common platform where these disparate components written by various vendors can be integrated to build new applications during runtime. A good example is desktop widgets being developed by several vendors; if coded according to this pattern, these disparate widgets can interact with each other to provide more elegant solutions for the end user. This pattern makes a runtime plug-in such as embedding Flex content and hooking them up with messaging a reality, where each Flex component can interoperate with each other to make really extensible solutions with a versatile mix of plug-in and loosely coupled event-driven architecture.
I you really want to take your Flex applications to the next step and expose them to the world and also build robust Flex-based applications using components already released by others, read on…
Why the Plug-in
Integrator Pattern?
The Plug-in
Integrator Pattern is a hybrid of the plug-in pattern and event-driven
architecture. This
plug-in pattern refers to a mechanism for creating an object instance of a
certain interface at runtime while the actual configuration and implementation
of the instance is usually controlled by external configuration. The message-driven architecture refers to the design and implementation of applications and
systems that transmit events among loosely coupled software components and
services. The Plug-in Integrator Pattern is a mix of both of these concepts
where the container implements a plug-in mechanism to load contained components, implementing
the plug-in interface and hooking up these components to pass messages between
themselves by reading configuration details from an externally maintained
configurator. This mechanism of having the external configurator load and
hook up content provides the best solution to reusing existing tested components
to come up with functional applications in no time. Please refer to Figure 1
for more details.
Published May 23, 2008 Reads 9,013
Copyright © 2008 SYS-CON Media, Inc. — All Rights Reserved.
Syndicated stories and blog feeds, all rights reserved by the author.
About Indroniel Deb Roy
Indroniel Deb Roy works as an UI Architect for BlueCoat Systems.He has more than 10 years of development experience in the fields of J2EE and Web Application development. In his past he worked in developing web applications for Oracle, Novell, Packeteer, Knova etc. He has a passion for innovation and works with various Web2.0 & J2EE technologies and recently started on Smart Phone & IPhone Development.
About Alex Nhu
Alex Nhu works as a manager, UI Development at Packeteer Inc. He has more than 11 years of work experience designing and architecting complex server-side J2EE and XML applications. He loves developing Web applications with Flex now after getting a taste of developing UI using other RIA platforms.
- Java Kicks Ruby on Rails in the Butt
- Ulitzer’s Amazing First 30 Days in Public Beta
- "Government IT Expo" to Highlight Cloud Computing and SOA
- Will Ulitzer Dominate News Content on The Web? -Gartner
- Building Private and Hybrid Clouds with Ubuntu 9.04
- Ulitzer vs. Ning - a Quick Review
- Eclipse.Org Releases Swordfish Next-Generation ESB for SOA
- Ted Weissman and Lois Paul & Partners PR Firm
- New Eclipse Plugin Adds Cloud Hosting for Java, PHP and Rails Applications
- Software AG Comments on Oracle-Sun Acquisition
- Java Kicks Ruby on Rails in the Butt
- IBM Named “Platinum Sponsor” of SYS-CON's Virtualization Conference
- Ulitzer’s Amazing First 30 Days in Public Beta
- "Government IT Expo" to Highlight Cloud Computing and SOA
- Cloud Computing Expo Keynote to Be Delivered by IBM's CTO Kristof Kloeckner
- Will Ulitzer Dominate News Content on The Web? -Gartner
- Micro Focus Offers Micro Focus COBOL for Eclipse
- Building Private and Hybrid Clouds with Ubuntu 9.04
- Sun CEO Reviews Company's Prospects for 2009-10
- Virtualization & Cloud Computing Expo Attracts More Delegates Than Gartner
- Java Developer's Journal Exclusive: 2006 "JDJ Editors' Choice" Awards
- The i-Technology Right Stuff
- Creating Web Applications with the Eclipse Web Tools Project
- Eclipse Special: Remote Debugging Tomcat & JBoss Apps with Eclipse
- The Next Programming Models, RIAs and Composite Applications
- How to Bring Eclipse 3.1, J2SE 5.0, and Tomcat 5.0 Together
- SYS-CON Webcast: Eclipse IDE for Students, Useful Eclipse Tips & Tricks
- Eclipse: The Story of Web Tools Platform 0.7
- "Eclipse 3.0 is a Great Leap Forward," Says JDJ's Dudney
- Developing an Eclipse BIRT Report Item Extension







































