March 25, 2007

Eclipse Plugin: History Flow

HistoryflowHere is an interesting new plugin for the Eclipse development environment. Rather than the traditional file history the History Flow plugin provides a different way to view the history of your files in CVS.

Links
History Flow Plugin

Posted by Egon Kuster at 11:01 AM

December 17, 2006

OmniGraffle Stencil for FFBD

Ffbd-1After looking around the Internet for an OmniGraffle stencil for creating Functional Flow Block Diagrams (FFBD) without any luck I decided to just create my own, which you can download from here. This stencil contains all the major components of a Functional Flow Block Diagram which is used to outline the control of flow between functions within a functional architecture. FFBD are extremely helpful to try and describe the behavior of a system while being solution agnostic.

Links
Download Functional Flow Block Diagram (FFBD) Stencil
OmniGraffle Home Page

Posted by Egon Kuster at 05:06 PM

October 29, 2006

Adobe Labs and Eclipse RCP

 Images Labs Master Labs LogoToday I found the Adobe Labs site, which is where Adobe releases all of its beta preview software for testing and trials. There are also some developer tools such as the XML Toolkit, which allows for metadata to be stored within files. Currently XMP supports these file formats: JPEG, PSD, TIFF, AVI, WAV, MPEG, MP3, MOV. Also of interest on this site is the new Flex Builder application. What is interesting about this application is not so much that it is a new application for building Flex applications but rather than it has been developed using the Eclipse Rich Client Platform (RCP) framework. This is following a general trend for more and more applications to utilise the power of the RCP framework. For a list of some of the already developed RCP applications have a look at this page.

Links
Adobe Labs Site
XMP Toolkit
Eclipse Rich Client Platform
Adobe Flex Builder 2 for Macintosh

Posted by Egon Kuster at 11:12 AM

January 28, 2006

Ruby on Rails with AJAX support

 Images RailsOne of my friends and collegues has started using Ruby on Rails and has now become a complete convert, so much so that everything can be done with Rails (short name). Rails is a complete web development stack for creating dynamic web applications with very little fuss and painful configuration that is synonymous with other web development stacks, such as J2EE. I was also pointed in the direction of script.aculo.us that provides AJAX support to Rails by using the Prototype JavaScript Library. Some of the examples at script.aculo.us are drag and drop shopping carts, auto-completing text boxes and pretty JavaScript animations.

Rails is built around using the Ruby programming language, which is easy to learn and quick to develop with. Doing things quickly is the moral of the story when developing with RAILS. By adding Prototype enabled scripts on the client end greater interactivity is created and by using AJAX pages no longer need to be fully reloaded speeding up the response times as only the data is sent through the AJAX bindings. One issue with adding all this JavaScript to the client web pages is that the HTML code can become littered with <script> tags; however, this can be solved by attaching the JavaScript events by using CSS selectors. For a description and example of this approach have a look at the Behaviour web page.

Rails and supporting scripts can all be downloaded from the links below. If you are developing on a mac you can download pre-compiled binaries from here. For Windows users a quick install can be downloaded from here.

Links
Ruby on Rails Homepage
script.aculo.us Homepage
Prototype JavaScript Library Home Page
Behaviour Page
Agile Web Development with Rails Book
Programming with Ruby Book
Rico Homepage (Addition JavaScript Libraries using Prototype)

Posted by Egon Kuster at 11:38 AM

January 23, 2006

Handbook of Software Architecture

WelcomeHere is a very good software architecture site maintained by Grady Booch, who is the author of many good software design and architecture books. This site is developed in support of a new book "Handbook of Software Architecture".

Links
Handbook of Software Architecture Site

Posted by Egon Kuster at 05:00 PM

January 05, 2006

FacesClient

One of the big problems with developing web application is creating good interactivity for the user without having to refresh the page. Using multiple technologies like AJAX it is possible to enhance this interaction but the work required for developers to achieve this is great. Therefore using the Model View Controller (MVC) concepts from Java Server Faces the FacesClient has been developed. IBM has an implementation of this JavaScript library and components and is available from their AlphaWorks site in the Emerging Technologies Toolkit (ETTK). If you would like to just have a read then below is a link to the FacesClient developer guide.

Links
Emerging Technologies Toolkit (ETTK)
Faces for Laszlo
FacesClient Components, Part 1 : Portlet Programming with FacesClient Components
FacesClient Components Developer's Guide (second edition)

Posted by Egon Kuster at 09:29 AM

August 17, 2005

OASIS drafts Blueprints for SOA

OASIS has started a new Technical working group to start defining Service Oriented Architecture (SOA) blueprints to facilitate applications being developed or re-factored into platform-agnostic services. The key players are all the same crowd, including BEA, Microsoft, IBM, Adobe Systems, Datapower, Infravio and Software AG. The catalyst documents being used are the blueprints originally developed by The Middleware Company analyst firm who sold the documents to a former employee for $1 as long as they were further developed and released license-free to the world developer community.

Links
SOA Center Service Oriented Architecture Blueprints
OASIS Web Services and SOA Technical Committees List
OASIS Adoption Blueprints TC

Posted by Egon Kuster at 09:35 AM

May 13, 2005

OASIS SOA Reference Model

OASIS has formed a Technical Committee to develop a Service Oriented Architecture Reference Model. The purpose of this Reference Model is ensure that the term SOA is used consistently by all software vendors. The Reference Model is to encourage the different specialisations under developed while providing a common understanding.

Links
Oasis SOA Reference Model TC

Posted by Egon Kuster at 07:17 PM

XML Cover Pages: SOA Links

The XML Cover Pages has a great links pages for all things about Service Oriented Architectures (SOA). SOA is the newest framework/architecture/concept on the block and is being pushed by all the big middleware software providers. SOA is nothing new, the concepts have been around for many years; however, with the advent of web services and XML the true ubiquitous service environment is actually possible. What makes this possible is the lowest common denominator, web services, not the most elegant or best performing option for system communication but it does provide a common communication mechanism for ALL systems.

Links
SOA Links Page

Posted by Egon Kuster at 07:08 PM

April 18, 2005

CTL Architecture Report

Another one of my DSTO reports has finally been published, Coalition Theatre Logistics Architecture Overview report. This is a technical report that outlines the architecture that was developed in 2003 - 2004 to support the Coalition Theatre Logistics Advanced Concept Technology Demonstration (CTL-ACTD). This report was developed in association with Dick Creps (Lockheed Martin Mission Systems, USA) and various others involved in CTL-ACTD. The architecture detailed in this report has been further defined in other DSTO reports that I am currently writing but if you have any comments on this report please add comments to this blog.

Links
CTL Architecture Overview Summary
Download CTL Architecture Overview Report (PDF)

Posted by Egon Kuster at 10:16 PM

October 04, 2004

Making Better Open Source Systems

Jeffrey Veen has a good article that talks about ways to improve Open Source Content Management Systems (CMS) although many of the comments made in this article could actually be applied to many Open Source developments, not just CMS. So if you are one of those Open Source developers this article is a MUST READ and take all these comments on board.

I can not stress that the easy to use installer point that Jeffrey makes is extremely important, because if it is hard to use you will lose half your audience. Do not think that you are too good for installers and that you only want to cater for the elite programmers. Even a hard core programmer likes a good installer that is going to allow them to spend more time working on their core projects.

Another big problem with a majority of Open Source software is that the interface designs need some serious work. I am not advocating the Apple creates the best software but everyone should have a hard look and see why apple does do so well, it is all because their software interfaces are simple but still provide incredible power and flexibility. Anyone who has designed software knows that creating a good user interface is probably THE hardest thing and is ignored by many developers out there. Instead of a SpreadFirefox.com site we really should have a site SpreadGoodGUI.com to promote better GUI and design in software applications (ps. Support Firefox download it now).

Links
Jeffrey Veen's article on Open Source CMS

Posted by Egon Kuster at 08:24 PM | Comments (0)

August 06, 2004

Table Oriented Programming

We have services oriented programming, object oriented programming and now table oriented program. In the browsing through the Internet I have found this interesting site that talks about a programming design based around the use of tables.

Links
Table Oriented Programming (TOP) website

Posted by Egon Kuster at 11:12 PM | Comments (0)

July 27, 2004

Gluecode and Geromino

Gluecode who produces Portal and Business Process products has announced its support of the Open Source Geronimo project. Geronimo is an Apache Foundation project working towards releasing an open source J2EE container to rival the large J2EE providers like IBM and BEA.

Links
Apache Geronimo
Gluecode
Gluecode Products Page
Article on Gluecodes support to Geronimo

Posted by Egon Kuster at 09:43 PM | Comments (1)

July 25, 2004

US MATRIX uses CTL like Architecture

A recent Slashdot article posts this statement:

Associated Press: 'The Multistate Anti-Terrorism Information Exchange combines state vehicle and crime records with commercial databases owned by a private company, Seisint, covering half the U.S. population,' but there were 'questions about the legality of sending state-owned records to Seisint'. The solution? “Each state will maintain its own records . . . Software will search each state's records as necessary.'

The Multistate Anti-Terrorism Information Exchange system, also known as MATRIX is now using a similar technique to get around jurisdiction and release laws by allowing the system to execute distributed searches so that each of the states can keep and maintain their own databases. Not this is not a new technique at all, but it is new for governments to use these concepts. I have also designed this same capability into the Coalition Theatre Logistics (CTL) project that I am the Australian Technical Manager for.

CTL has been operating since the year 2000 but only started true technical development in 2002. The aim of CTL is to provide a system that will allow multiple nations to share and access logistics information for coalition operations. The current CTL architecture was designed by myself using the familiar concepts developed for business to business transactions on the Internet but expanding the concepts to support the extra requirements of CTL.

Like MATRIX, CTL uses a similar distributed searching technique so that each nation owns their data on the coalition network and uses a series of coalition defined web services to allow other nations to access this data. This type of architecture allows for nations to maintain control over their data and selectively release this data to the network. The benefits of using a distributed data search and data access architecture are:

  • Owners of data maintain control as they still own the databases containing the data.
  • Different implementations of storage can be implemented in the national data storage areas as it does not affect the distributed search or coalition data access interfaces.
  • Allows for the definition of standardised data access and transfer so that other nations can easily access the distributed network.
  • Distributes the processing load for searching and storing of data
  • Spreads the cost of implementation as each nation is responsible for their node on the coalition network.
  • Allows for firewalls and other network filters to secure the national nodes on the network.
  • Allows for flexible communication between nodes on the network

Distributed systems when crossing political boundaries allow for a much greater flexibility when compared with central data store solutions as it is near impossible to separate data when stored centrally. This merging of data in central data stores does not easily allow for multiple levels of security or separate data that is only releasable to certain audiences. By using distributed data stores allow for an easier method of applying security and controlling the data access, however the development of the clients and data access software becomes more complex. This complexity in developing the clients to access data is one of the reason such a design is avoided by many developers and a single data storage solution is chosen, but this is not necessarily the correct choice.

Over the next couple of months I will be producing a report as part of my work which will be publicly available and will provide access to a copy from here. The title of this report is “Multi-lateral Information Exchange Environment (MIEE) architecture” and will be available from the DSTO publications database or via the research link on the DSTO Home Page. You can also find all my publicly releasable reports by entering my full name (“Egon Kuster”) into the search area.

Links
Slashdot Article on MATRIX
Article on USA today
DSTO publications database
DSTO Home Page

Posted by Egon Kuster at 11:19 AM | Comments (1)

July 24, 2004

Web Standards coming to a desktop near you.

Web Standards like JavaScript, DOM, HTML, CSS, XML are starting to become more common place in desktop applications. Mozilla already uses XML to define its GUI using their XUL markup language and then use JavaScript as the glue. Apple has also previewed their new Dashboard capability that will allow developers to create widgets that are quickly displayed or hidden by entering a hotkey shortcut. These new capabilities are becoming more and more prolific and signifies a paradigm shift of using these standards in desktop-based application development rather than relegating their use in web based applications using standard client-server architectural designs.

The reason that these standards are becoming more prolific for desktop applications is because of their flexibility, ease of use and platform independence. As more and more applications are becoming network enabled it is a logical step for these web-based applications to be run directly on the desktop. These standards are also very powerful and could be used to develop applications that run both as web-based applications accessed by a standard Internet browser or as fully fledged desktop applications.

The common uses for these standards include:
- Use of XML to define and build GUI components
- Using javascript and other scripting languages as the runtime glue to build the application
- providing lightweight user interfaces that provide a quick access to information that can also be skinned so that users can select the overall look and feel of their application.

I foresee that over the next couple of years you will see a greater number of these localised web applications appearing that support and use web-based standards to provide standalone or network centric applications.

Posted by Egon Kuster at 05:37 PM | Comments (0)

July 14, 2004

Oracle ventures into Web Services, SOA, BPEL and J2EE

Oracle LogoOracle has been involved in J2EE application servers for quite some time now with their Oracle Application Server but with their newest release they are surfing the web services and Service Oriented Architecture (SOA) wave. The newest version of JDeveloper supports full Model-View-Controller (MVC) implementations using a selection of technologies/standards including Struts, Java Server Faces (JSF), Enterprise Java Beans (EJB), Java Server Pages (JSP) to develop your applications. To support SOA Oracle is supporting full development of Web Services and now includes BPEL support for services process execution modelling and execution via the recently acquired Oracle BPEL Process Manager product. All these technologies can be combined and developed using the graphical JDeveloper environment that also allows the developer to view the underlying XML structures. For more information about Oracle's Web Services support and the components supporting SOA, BPEL and MVC development go to this page.

Links
Oracle Web Services Page
Oracle Application Server
Oracle BPEL Process Manager product
JDeveloper

Posted by Egon Kuster at 10:04 PM | Comments (0)

July 08, 2004

The speed of Web Services

I have implemented a number of web services projects and many of my critics have always commented that “web services are slow”. Well this is true, however there is a big “but” in this statement. Web services are slow when you compare them to such protocols like RMI (Remote Method Invocation) where you can transfer serialised objects between program components using tightly coupled, well known interfaces but this is not the area where web services should be used.

Web services have been developed for environments where you are unsure about the environment (including software, hardware, operating systems, processes and designs). Web services excel when you require information to be transfered from one system to another but do not own or know the details of the other system. These uncontrolled environments is where web services excel and RMI fails. This interoperability ease is why web services have done so well and with the Basic Profiles being developed by WS-I further improves interoperability between web service implementations.

Back to the original statement of why web services are slow. Web services are a very fat protocol as dealing with XML documents is a very CPU intensive process and sending XML documents is not an optimal solution because of the amount of data required to be transferred, for these reasons web services are slow. It is for these same reasons why web services are not the solution for everything, they do however provide a very useful capability when interconnecting disparate systems or developing a very dynamic and unstructured communication environment.

For a interesting discussion on the speed of web services have a read of Jeff Schneider's Blog on “The Suckline” where he discussed that web services provide the lowest common denominator when it comes to system interoperability.

Posted by Egon Kuster at 10:06 PM | Comments (0)

June 25, 2004

Service Oriented Architecture Presentation

The Pennsylvania State University has produced a very good powerpoint presentation outlining what Service Oriented Architecture (SOA) is, its relationship with Business Process Management (BPM) and where these concepts have evolved from.

Download Presentation

Posted by Egon Kuster at 10:36 PM | Comments (0)

June 17, 2004

The next wave for application development

The first applications were only run on large mainframes with a limited number of users normally running batch processing. This was then replaced with the introduction of personal computers and the development of applications to run on these operating on local files. Soon applications were started to be developed that still ran locally but accessed remote databases and networked file repositories. From here we have now a trend in the development of web-based clients (eg. HTML in a browser) to deliver applications to the user, otherwise known as thin clients.

More and more you are seeing applications being developed using thin clients as the user interfaces, however there are many issues with the use of thin clients to provide dynamic or interactive applications for users. Now there is a new trend gathering momentum to use XML-based rich clients to develop applications.

Coach Wei has produced a short article on the Computerworld about XML Rich clients and this new trend.

Go to Article

Posted by Egon Kuster at 08:39 PM | Comments (0)

June 15, 2004

Service Oriented Architecture Design

IBM has put out a paper about the lessons learnt from initial implementation projects using Service Oriented Architectures (SOA). The paper discusses the limitations of current analysis and design tools/techniques for use in building SOA based implementations. I highly recommend reading this article if you have anything to do with developing web services for enterprises or are endeavoring to identify your business requirements to start integrating your disparate or stove-piped systems.

Go to Article

Posted by Egon Kuster at 10:41 PM | Comments (0)