There has been exciting news rippling through cyberspace today. Adobe Systems has signed a definitive agreement to launch a public tender offer to acquire Day Software. I would like to send out a big congratulations to our friends at Day Software. Having been a professional implementation partner of Day since 2006, we have seen the product evolve from CQ3.x to CQ4.x and then to their flagship version, CQ5.
Great product innovation and marketing has fueled the growth of Day over the past 2 years and I would presume is what put Day on Adobe’s radar. Day has executed well on both “ends” of the CQ5 product, (1) great technical platform for developing large-scale WCM applications and (2) user friendly authoring interface that sells well to end users (i.e. marketing).
Here’s my initial opinion on how I think those entities involved will benefit from the acquisition:
The common theme among most of the points above is that Adobe’s ability to fund more R&D and feature development of the Day products will no doubt benefit just about everyone in Day’s current ecosystem.
Are there any bad points? At first glance: no, but as with any M&A activity especially when a large organization purchases a smaller, spirited and innovative organization, the truth will be told a couple years out as to whether Adobe will embrace Day’s hunger to innovate and push the limits on web content management. I have a positive outlook as I believe Day’s passion for WCM will transcend any large organization buearcracy.
Hope to see everyone at Ignite 2010 in Chicago this coming October!
Your organization just completed the development of a mobile application which has been submitted and approved by the Apple app store and Android app store. You wait for your first user to login to the application and you celebrate that someone has installed your app and is using it. You monitor the backend infrastructure poised to ramp up additional hardware as necessary to support more users. The number of users double a few times and you reach the point where you have to add an additional server to your backend infrastructure to handle the load. No problem, you prepared for this growth and have a brand new Dell server stacked with processors and memory just sitting there waiting to be put into production. Another few days pass by and the number of users has doubled again. No problem, you prepared for this growth once again and have two more Dell servers stacked with processors and memory just waiting to be put in production. Then…someone with quite a Twitter following tweets about how awesome your mobile application is. This tweet is then re-tweeted all over cyberspace, into just about every social networking site known to man including LinkedIn, Facebook, My Space, etc. Your user base has increased by a factor of 1,000 almost overnight. This time, it is a problem. Unfortunately, you are out of available servers and your procurement department can’t get 100 more servers ordered in less than 2 weeks and you need them ASAP. The number of users keeps increasing and before you know it, people are tweeting about how slow and unresponsive your mobile application is. Your call center and email inboxes are overwhelmed with users wanting their money back.
What could be done initially to make this story have a happy ending? Cloud Computing is the answer. Let’s re-run the story this time assuming the backend of your application is hosted by Amazon EC2…
Your organization just completed a mobile application which has been submitted and approved by the Apple app store and Android app store. You wait for your first user to login to the application and you celebrate that someone has installed your app and is using it. You monitor the single, small Amazon EC2 instance poised to ramp up additional instances as necessary to support more users. Your bill for hosting is minimal since the bandwidth, CPU usage and storage is minimal. The number of users double and you reach the point where you have to spin up an additional Amazon EC2 instance to handle the load. Another few days pass by and your number of users has doubled again. No problem, you quickly spin up a couple more Amazon EC2 instances. Then…someone with quite a Twitter following tweets about your application. This tweet is then re-tweeted all over cyberspace, into just about every social networking site known to man including LinkedIn, Facebook, My Space, etc. Your user base has increased by a multiple of 1,000. No problem, in a matter of minutes you spin up an additional 100 Amazon EC2 instances to handle the load. Your call center and email inboxes are overwhelmed with high praise for the great mobile application your organization developed and your company’s bank account keeps growing.
Mobile computing and cloud computing go hand in hand. Given the sheer number of mobile devices being used today, having a scalable backend infrastructure to support the potential viral growth of a mobile application is key to success. Mobile application usage growth does not follow a nice, straight linear growth curve. Once a mobile app reaches viral status, the exponential growth will be difficult to support from a computing perspective unless of course you have built out an entire data center to handle it from the beginning which can be very costly without any guarantee of it being actually necessary.
A small team of CITYTECH consultants put their spare time to good use and built a Red Hat Summit Sweepstakes mobile application to prove out an architecture that provides unlimited scalability leveraging Amazon EC2 to host the REST-based server side components. Being a Red Hat Advanced Business Partner and understanding mobile application development, our team put our thinking caps on and creating an application that leverages JBoss Infinispan distributed data cache, JBoss ModeShape for JCR API access to the Infinispan data and JBoss RESTEasy based services which are consumed by the PhoneGap based native Android and native iPhone applications. The architecture proves that additional Infinispan nodes can be added to the cluster by simply spinning up additional Amazon EC2 instances in a matter of minutes to support the need to exponentially grow in circumstances as described in the above hypothetical scenario. Check out Jeff Brown’s blog and Tom Kelly’s blog to learn more about the details of the implementation architecture.
Consider leveraging a public cloud computing service such as Amazon EC2, Google App Engine or Microsoft Azure for hosting the backend services for your next mobile application and sleep well at night knowing you can scale without needing to talk to your hardware vendor and procurement department.
Our consultants’ passion for technology and commitment to innovation is amazing. I received a call from Sten Anderson last Friday evening informing me that he won the worldwide JavaFX Coding Challenge sponsored by Sun Microsystems with his Music Explorer FX rich internet application (RIA). I was thrilled to hear this news. Wow, first Music Explorer FX shows up on the Java App Store unveiling on stage at a JavaOne keynote, now it places first in a worldwide coding contest bringing $25,000 in prize money. Congratulations Sten!


Music Explorer FX is a visual tool for discovering new music. Start with your favorite artist and take a “musical journey” based on recommendations provided by the Echo Nest. Up to six recommendations will be given for each artist so no two journeys will be the same. As you take your journey, you can listen to music from the artist, view images of the artist, and follow links to view videos, Twitter feeds, reviews, news, and blogs. At any point you can automatically tweet your journey if you discover a path that you particularly enjoy. In case you have not given the Music Explorer FX a test run yet, I encourage you to click on this link and let the Music Explorer FX take you through a journey of music seeded by one of your favorite artists.
What some of you may or may not know is that the Music Explorer FX is something Sten decided to create in his “free” time, in between projects with our clients and personal time. This makes the achievement of winning this coding challenge even sweeter. As you can see from the last interview with his daughter, Meredith, Sten’s main reason for writing the Music Explorer FX was to have an interesting project in which he could test and further his knowledge of the JavaFX platform and RIA development in general.
Aside of the “cool” factor and the shear joy of browsing through recommendations that are similar to my favorite artists, I am excited about the how internet based applications are becoming much more user friendly and intuitive by leveraging rich internet application platforms such as JavaFX. Sure, someone could have easily wrote a web browser based application that interfaced with the Echo Nest API presenting artist recommendations in a standard, sortable data grid. However, as the user of the application, would you have felt like you took a “musical journey” or a lifeless series of clicks?
You might ask: So, what does this have to do with enterprise application development, a core competency of CITYTECH? Applications with an innovative and compelling user interface such as the Music Explorer FX can help us think differently about how to convey important business events and data to our users. If you were an air traffic controller and you had your choice of seeing aircraft positions in scrollable data grid or visually overlaying a map of the airport’s runways, which would be more useful?
I made the trip out to San Francisco this past week to visit a client and also attend JavaOne. It seemed like an interesting time to attend JavaOne with the looming Oracle acquisition of Sun Microsystems. I attended most of the key note sessions including the one which featured Scott McNealy and Larry Ellison on stage together. I thought their interaction on stage was forced and not very genuine, but would I have expected something different? No, I figured Scott McNealy would be sad and Larry Ellison not showing any feeling at all. This was the case. I was surprised that Oracle did not even have a key note slot this year. Perhaps, this was because of the pending (not yet finalized) acquisition?
One of the more exciting key notes was the Sun key note when they released the Java Store, something similar to the Apple App Store, but for desktop type applications. The reason why it was exciting to me was that our very own Sten Anderson’s MusicExplorerFX JavaFX application made the key note. Yes, it was right alongside James Gosling’s solitaire application! See the key note screen shot here. Come back soon to my blog to catch a review of Sten’s MusicExplorerFX.
The purpose of this blog post is to share with my readers the sessions I attended along with short commentary. If one of the sessions I attended looks interesting to you and you would like to learn more about them, feel free to contact me and I would be happy to share what I had learned.
Enterprise JavaBeans 3.1 Technology Overview
This was a good session to attend as it provided a nice overview of new things coming in EJB 3.1. Boy, the EJB specification has come a long way since 1.1!
Using REST and WS-* Together for SOA
This was a session given by the JBoss CTO, Mark Little. He did a very nice job providing an architectural comparison between WS-* and REST. I could tell he was a much bigger fan of WS-* than REST, but knowing his background in heavy, formal and transactional based systems, this was not a surprise. Mark was a good speaker and was not afraid to speak his opinion so the session was colorful.
SOA Deployment Challenges in the Real World
Sastry Malladi, Distinguished Architect with eBay gave a great presentation on a real-world case study of SOA at eBay. I thought he did a great job with the presentation from the layout of the slides to the delivery. It is interesting to go to these real world type sessions and learn that folks like eBay have successful SOA implementations without using 3rd party SOA/ESB/etc. products. Governance outside of any vendor’s product is the most important quality of any SOA initiative. eBay’s governance model is based on (1) design time governance, (2) process governance and (3) runtime governance. If your organization has an active SOA initiative, be sure to look this presentation up when Sun makes it generally available to the public – if you can’t wait, contact me and I would be happy to share what I have learned.
An Introduction to Complex Event Processing (CEP) on the Java Platform
This was a session put on by Oracle’s CEP product manager and side-kick engineer. I was pleasantly surprised by the session and enjoyed hearing about Oracle’s CEP strategy. They project this market to be a $1B+ industry soon (as IBM does as well). The demo of an emergency management application they did for the UK was impressive. I found it interesting that they were using Spring’s dmServer versus one of their JEE app servers (WebLogic, 10g AS) for the part of the application that interacted with the Oracle DB’s Advanced Queuing. They sited needing a “lighter weight” and least latency option caused them to leverage the dmServer. The application featured a Flex + Google Maps front-end to show the end user visually the status of assets during an emergency.
Building Rich Internet Applications with the JavaFX Programming Language
This session opened up my eyes to using JavaFX + JBoss Seam. The presenter, Max Katz is a Exadel engineer. He discussed using Flamingo as “glue” between a JavaFX UI and a Seam or Spring MVC backend.
Developing RESTful Web Services with JAX-RS
This was a great session. Marc Hadley and Paul Sandoz, both spec leads of JAX-RS did a great job presenting this material. They first went over the basic REST principles, then went into several examples/demos featuring the use of JAX-RS.
Designing and Building Security into REST Applications
This session talked about how the OpenSSO team secured their REST based services. It was a very interesting session and I thought the Sun engineers did a great job presenting the subject. They spent some time talking about oAuth, a leading protocol providing secure API authorization for desktop and web based applications. If you did not goto JavaOne this year, be sure to download this presentation when Sun makes all of the presentations available for the general public.
Pro JavaFX Platform: RIA Enterprise Application Development with JavaFX Technology
This was somewhat of a let down. I saw “Pro” in the title, but then found out after being at the session for the first 10 min that it was a Jim Weaver session and his book is called “Pro JavaFX”. The session was not “Pro” at all and neither did it address the “Enterprise Application” space. The code and related demos were all more like a typical Flash movie and not a typical enterprise application. The session went too slow as well- and I am not even close to being a JavaFX expert (Visit Sten’s blog if you want that). The session was very similar to a session I attended at the TheServerSide.com conference in Las Vegas a year or so ago.
The New World: JavaFX Technology-Based UI Controls
Good session. The presenters talked about the newly released control library for JavaFX. Something I think should have been delivered in the 1.0 release. I did find it disheartening that they did not include a grid nor combo box in this release. When someone asked them about why, they responded “hey, we only had x amount of time and did not have the resources”. If they want JavaFX to be a serious contender for developing UIs for enterprise apps, they better have a data grid and combo box! Perhaps the mighty Oracle can add a couple developers to the team and accelerate the delivery of those much needed controls
.
RESTful Transactional Systems
I had very high hopes for this session in that I was hoping that Mark Little (JBoss CTO) was going to be the presenter. He did the introduction, but then handed it off to Michael Musgrove, a JBoss transaction expert. He seemed to be very competent, but the delivery was just not there – he mumbled quite a bit and did not engage the audience very well. I left the session early to tend to my email inbox.
The Web on OSGi: Here’s How
I liked this session. Don Brown, a Atlassian architects was the presenter. He discussed how to embed OSGi into your web application using examples based on how they did it with their products to enable a highly functional plugin system. I am a big fan of Atlassian products as we run Confluence (Enterprise Wiki) and Jira (task and bug management) at CITYTECH. On a separate but related note, Atlassian’s Confluence 3.0 and Jira 4.0 look like very good. I know we’ll be upgrading Confluence to v3.0 and will be looking forward to the Jira 4.0 GA release in the coming months.
Web 2.0 Security Puzzlers: Genuine Security Vulnerabilities or False Positives?
I found myself a bit distracted during this session. It could have been that I just needed a coffee or my inbox was starting to fill up again and I needed to give it some attention. The presenter was the chief security person at Intuit and it seemed like he knew what he was talking about. He challenged the audience by presenting possible security vulnerabilities and then asking whether the case was genuine or a false positive.
JEE 5 in a National Electronic Health Record System Implementation
This was a good session although I wish the speaker went a little faster and talked about more details on the application. It was very interesting to know that his team had actually implemented a health record system for an unspecified geographical location (somewhere in Europe I assumed). His presentation provided a nice overview of how they leveraged JEE 5 to provide the technology framework for implementing the system.
A Java Persistence API Mapping Magical Mystery Tour
THis session was done by an Oracle engineer. He did a great job given an overview of JPA 1.0 as well as new features being offered by JPA 2.0. His presentation style was good and the content was nicely assembled as well. My collegue who had been using JPA 1.0 for the past few months was somewhat bored of the 1.0 overview, but was excited to learn the new features of 2.0.
JBoss AS5 Microcontainer Architecture
I was about 30 min late to this session due to a conference call, but was still happy to catch the 2nd half of the session. Aleš Justin from JBoss was the speaker. The big take away from the 2nd half of the session I attended was that the JBoss AS5 Microcontainer is highly extensible including a sophisticated class loading mechanism, virtual deployment framework and tight JBoss AOP integration. Additionally, I was happy to hear Aleš mention that the AS5 Microcontainer had nearly 100% test coverage – something he stressed was important for validating the functional requirements but also as a way for someone to learn more about the AS5 Microcontainer by simply reading through the tests. JBoss AS5 is generally available now from jboss.com, or specifically here (http://www.jboss.org/jbossas/downloads/).
All in all, it was a nice trip. No big announcements or surprises, but that was no surprise. We’ll have to wait and see if the show will be named OraJavaOne next year
. I hope that at least they add a couple developers to the JavaFX control library team so that grid and combobox controls are available before the next JavaOne or should I say OraJavaOne
.
We had a great first two months of the year, participating in our first Virtual Tradeshow with JBoss, pulled off a great Alfresco Code Camp and saw the Chicago Groovy User Group (CGUG) get off to a great start in January with Sten Anderson presenting on a real life case study of how he integrated a Groovy DSL into a Java SE application.
We are not done yet! We are participating in the following events in the coming months:
Feel free to contact me if you have any questions or want more information.
I received my monthly JBoss Developer Newsletter the other day. Not surprising, it referenced a record number of downloads of the JBoss Application Server 5.0 in December. According to the JBoss AS 5 SourceForge project statistics page, from Oct-2008 to Dec-2008, there was an average of 122,000 downloads per month with a peak of 127,000 in December. They cited December as being the highest ever download rate in JBoss’s history!
Why so much popularity? Here are my thoughts on the subject:
Expect to see more posts from me on the JBoss middleware platform in the future.
CITYTECH has definitely hit the ground running as we flipped the year from 2008 to 2009. Here is a quick peek at some upcoming events CITYTECH will be involved in January and February.
1. Chicago Groovy User Group (CGUG) – Bill Gloff, Jeff Palmer and Bryan Williams all CITYTECH consultants have started a user group dedicated to Groovy and related technologies. The first meeting is scheduled for Tuesday, January 13th and will feature Sten Anderson a senior consultant with CITYTECH. Sten will talk about a real world case study on how he has developed a Groovy DSL in a Java SE based enterprise application.
2. Alfresco 3.0 Code Camp – CITYTECH will be putting on a free Chicago based code camp on Tuesday, February 3rd. The seminar will consist of an overview of the latest Alfresco 3.0 release as well as hands-on exercises to get you up to speed on the latest Alfresco technologies including Surf, Share and Web Studio. Keep in touch to get more details on the logistics such as time and requirements.
3. JBoss Virtual Experience 2009 – CITYTECH is a sponsor of the JBoss Virtual Experience 2009 which will take place on February 11. If you have not heard of a “virtual” tradeshow, you should check this out. There is a nice lineup of Red Hat/JBoss speakers who will talk about some interesting subjects such as Open Source SOA, keeping enterprise application development moving forward in a down economy, JBoss on the cloud and more! We’ll be virtually manning our booth between 7:30 AM and 5:00 PM CST, so stop by the CITYTECH virtual booth and see what we are up to as well!
Please stay in touch regarding the above events and don’t hesitate to contact me for more information.
CityTech was approved as a Motorola Enterprise Mobility Partner today. We are excited about having this partnership in place as it will enable us to include Motorola’s vast line of mobile devices as a key part of the mobile solutions we develop for our clients. If you have any questions regarding the partnership or want to talk mobility, drop me a line!
I inadvertently posted an infamous “Test” blog post earlier today and was notified by a few of my blog readers! Funny….I guess that new Alfresco 3.0 multi-channel blog publishing feature works! I was demoing it for a customer this morning and forgot that I did that.
I hope to provide a more comprehensive review of Alfresco 3.0 sometime soon. If you get a chance download it and give it a whirl.
If your passion is Enterprise Content Management (ECM), you probably have heard Content Management Interoperability Services (CMIS) will soon be released to OASIS as a standard content service interface. I am happy to see such a standard emerge from some of the largest players of the ECM market including Documentum, IBM FileNet, OpenText, Oracle, SAP and both of our partners, Alfresco and Microsoft.
It is great to see Alfresco lead the charge being the first vendor to provide a draft implementation of CMIS at such an early stage of the standard. As mentioned in John Newton’s blog, Alfresco has been preparing for this standard for some time after releasing the web script API in 2005. I was not part of the CMIS specification development, but it is my opinion that the Alfresco web script API definitely influenced the CMIS standard which is confirmed by Alfresco already having a reference implementation available to the community.
In this blog I intend to provide a high-level overview of CMIS. First I will briefly list the CMIS goals followed by a high-level technical view of what CMIS provides.
The CMIS goals below are taken directly from the specification.
These goals are straightforward. After first reading them, all I could say is “Amen”. I have created an image which I think shows not only a typical requirement in a larger enterprise, but also to show off how the CMIS standard can enable content to be ubiquitous in enterprises.
In the diagram above, the fictitious organization has three different content repositories: (1) Alfresco, (2) Microsoft Sharepoint and (3) IBM FileNet. At the top of the diagram there are three enterprise applications (i.e. ERP, CRM, Corporate Website) and for the sake of complicating this example to show the benefit of CMIS they each have been custom built using three separate development platforms such as Java, .NET and Ruby on Rails. Before CMIS, each enterprise application would require a custom integration to each content repository. Additionally, if the enterprise upgraded one of the repositories and the native API changed, the organization would need to go back to each of those enterprise applications and change the integration code. With CMIS, the integration is standard for both the enterprise applications and the repositories. No need to learn the API for three separate repositories – just learn CMIS. After thinking through this, i believe the goals of the specification mentioned above have been fulfilled.
CMIS describes the following:
The data model consist of four (4) pre-defined root object types:
The Document object can be versioned and searchable. It consists of a set of properties (metadata) and optionally a content stream. The Folder is a container object meaning it can contain other objects such as folders and documents. A document can reside in more than one folder (known as
“multi-filing) or reside in no folder (known as “orphaned”). The Relationship object is the link between two other objects (either Document or Folder). The relationship object specifies a direction therefore a source and target objects must be defined. The Admin Policy object can be applied to other objects such as the Folder or Document object. An admin policy can be a list of ACLs, retention policy, etc. The possible types of admin policies are not defined in the specification. Only the root admin policy type is described.
The basic CRUD (Create, Retrieve, Update and Delete) operations are supported for any of the four (4) object types described above. It is important to understand that the services also apply to sub-types of the four (4) object types as well.
Beyond the basic CRUD operations, there are additional services specified in the CMIS standard. These include Search Services such as being able to find all objects that are the source of relationship “x”. Additionally, the standard supports the ability to apply or remove an Admin Policy from an object.
The service that I think will push CMIS ahead from an adoption perspective is the implementation of SQL like query capability services. The CMIS implementation will employ a relational model which sits on top of the data model described above. This relational model will map object properties to columns of a table enabling SQL 92 type query language for easy retrieval of content objects.
If you have had to integrate a repository such as IBM FileNet with another application you can easily see how CMIS can ease the pain. My hope is that CMIS will increase the value of enterprise content management (ECM) in organizations by enabling better integration of content repositories and enterprise applications users use everyday such as ERPs, CRMs, portals, etc.
| M | T | W | T | F | S | S |
|---|---|---|---|---|---|---|
| « Jul | ||||||
| 1 | 2 | 3 | 4 | 5 | ||
| 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 13 | 14 | 15 | 16 | 17 | 18 | 19 |
| 20 | 21 | 22 | 23 | 24 | 25 | 26 |
| 27 | 28 | 29 | 30 | |||