Cloud Foundry: Design and Architecture
Derek Collison discusses the goals, the design premises and patterns employed in creating the architecture of Cloud Foundry, VMware’s open source PaaS, unveiling internal architectural details.
The content has been bookmarked!
There was an error bookmarking this content! Please retry.
Posted by Srini Penchikala on Aug 02, 2008
The latest version of Java pattern framework Jt supports JtWizard and enhancements to Jt Components. The Jt development team recently released version 2.6 of the open source pattern oriented framework. JtWizard, an automated wizard application built as a reference implementation on top of Jt framework, can be used for generating Java applications based on design patterns including Gang Of Four (GoF), Data Access Object (DAO), Model-View-Controller (MVC), and J2EE design patterns like Business Delegate, Session Facade, Service Locator and Value Object.
The framework architecture is based on a messaging design pattern where framework objects interchange information and perform computations by sending, receiving and processing messages. The messaging API provides encapsulation and loose coupling so the framework components can be easily plugged into applications using a "lego/messaging" architecture. Several GoF design patterns are supported by Jt framework which include Memento, Command, Composite, Decorator, Prototype, Iterator, Adapter, and Flyweight.
The current JtWizard implementation provides integration with Struts and Hibernate frameworks. The artifacts like Hibernate mapping files, Struts configuration files, Views (JSPs) and Java classes are automatically generated by JtWizard. The applications created by Jt framework are customized using resource files where object attributes can be automatically loaded from a resource file.
Jt framework provides several components (Jt Components) out of the box. Some of the main components in Jt component suite are JtThread, JtList, JtCollection, and JtHashTable. There are also other reusable framework components such as JtFile, JtDirectory, JtURL, JtInputStream, JtKeyboard, etc that can be plugged into new applications. Jt framework has good integration with different client and server technologies used in a J2EE application.
Client:
Server:
Jt uses the Command pattern implementation to provide a request log, a queuing mechanism and undo operations. The framework also has support for XML integration, logging, exception management, testing and debugging. Testing support includes the capabilities for testing components independently (each component as a unit) by sending messages and verifying the reply (output) messages.
J2EE applications with business process management (BPM) requirements can use Jt's integration with jBPM, a business process modeling framework from JBoss. A jBPM adapter is provided within the Jt framework to support jBPM. Framework applications can be modeled using a process graph which gives the users a graphical way of modeling business processes.
In terms of future roadmap of the project, Jt development team plans to continue working on automated Jt Wizards and BPM integration. One of the goals is to make the framework components to be easily added to BPM process diagrams. Another goal is to integrate UML design diagrams and the framework messaging based applications and components needed for the implementation so that it's possible for the applications to be generated directly from UML design diagrams.
Jt framework has integration with Eclipse IDE environment and runs on any J2EE compatible application server. It is hosted as a java.net project and the latest version is available for download on Jt web site. The users can also read the online documentation and subscribe to their mailing list by providing an e-mail address and user name.
Srini Penchikala currently works as Security Architect and has 17 yrs of experience in software product management.
Tutorial: Integrating SQLFire with tc Server and Spring Data
Troubleshoot Java/.NET performance while getting full visibility in production
App Server Evolution: REST, Cloud, and DevOps Support in Resin 4
Big Data, Cloud & Mobile: Navigate the New Development Reality with Resources from IBM
Introducing SQLFire: a memory-optimized, high performance SQL database
VMware vFabric SQLFire - Test drive the data management system with memory speed, horizontal scalability and a familiar SQL interface
Derek Collison discusses the goals, the design premises and patterns employed in creating the architecture of Cloud Foundry, VMware’s open source PaaS, unveiling internal architectural details.
Andrew Watson talks about the work of the OMG, where CORBA is alive and well (hint: in your car), UML and UML Profiles vs. custom Modeling languages, DDS and other middleware, and much more.
Sohil Shah discusses creating iPhone and Android enterprise mobile applications based on cloud services using the open source platform OpenMobster.
Paul Sanford presents the transformations supported by data throughout its life cycle, and how that can be better done with Splunk, an engine for monitoring and analyzing machine-generated data.
A common “best practice” for unit tests is to only write a one assertion in each test. I intend to question this advice by showing that multiple assertions per test are both necessary and beneficial.
John Rauser presents the architectural and technological evolution of Amazon retail websites starting with 1994 and ending with adopting Amazon Web Services.
Michael Stal discusses system architecture quality, how to avoid architectural erosion, how to deal with refactoring, and design principles for architecture evolution.
Every developer has had to integrate with another system, API or component. Tis article provides strategies to handle the change and for he separating system boundaries.
No comments
Watch Thread Reply