City of Denver Makes Strategic Technology Investment in Open Source

We have been working hand in hand with the City of Denver for over 15 months to help them streamline their content management applications and business processes – see our recent customer case study. Denver, like many cities (and businesses) had invested in a number of different technologies that were hard to manage, too rigid and expensive to maintain.

We worked closely with Denver to help maximize their investments, identifying strategic technology purchases and planning their integration with existing technologies. To date, the City’s the most effective technology investment has been consolidating on Alfresco as their content management platform. As an open source technology, Alfresco offers Denver an open and flexible infrastructure with huge cost advantages. Denver estimates saving $1.5 Million over 5 years by migrating Documentum content to Alfresco. Alfresco has just published a case study which features Zia’s engagement with the City of Denver. A slideshare presentation is also available.

Over the past year, Zia consultants have truly become an extension of the Denver Technology Services Group. We have implemented a number of projects, creating solutions for contract management, procurement, mobile apps, and more. During the course of these engagements, we’ve configured the systems, designed workflows and user interfaces, written web services, created new applications for roll out and performed migrations. Many of our consultants wear multiple hats, ranging from project manager to architect to lead engineer to business analyst. As a result, Denver leverages Zia consultants to work with their existing team saving the city additional money and resources.

Key to Denver’s success has been its strategic use open source technology. As commented in Alfresco’s recent blog, open source technology can provide the building blocks for more open and social government interaction.

This can be seen in the Denver 311 application, a soon to be released app on the Apple App Store. Reusing the web services already created, we integrated Alfresco with the city’s call center and CRM technology and created a metadata form that can be filled out online or through an iPhone, or iPad application. Once submitted, a ticket is created in the CRM system and a city worker is assigned to investigate. 311 requests can be resolved faster while keeping the citizen who reported the item updated on the resolution.

Together Zia and Denver plan to make more city services and processes available online or through mobile applications. As Denver’s CIO Chuck Fredrick said:

“We are able to quickly roll out new services and automate city processes with the help of Zia and Alfresco. In the Technology Services Group, we are continuously looking for ways to make the city more open, efficient and easier for citizens to engage with.”

You can get a pdf of the case study from Zia Resources

.

Enhanced by Zemanta
2 Comments

etendi BRIDGE

etendi BRIDGE

Business Summary of the Solution:

etendi BRIDGE, an easy-to-use, interactive, safe and secure web-based meeting place that bridges the gap when parents and kids can’t be together. Developed specifically for non-custodial divorced parents or co-parenting situations, grandparents, military families, or the heavy business traveler, etendi BRIDGE allows family members to stay connected by providing a single place for them to be together online. Features include live video phone calling, shared spaces for photos, videos and documents, personal notes, an interactive white board, and a shared calendar. etendi BRIDGE leapfrogs existing web-based messaging or video communication tools by providing in one web location everything needed to create a true virtual meeting place. Parents, kids and other family members can be online at the same time and have a video phone call, play games or work on homework together. When they can’t be together online, they can create and leave text or video “Thinking of You” messages and use shared web spaces to build custom web pages, photo albums, explore common interests, plan events and build shared memories.

Technical Summary:

The application is an RIA’s implemented using Flex 3 for the client communicating with a server based on Spring Framework and backed by MySQL or PostgreSQL. SOAP is used as the primary communication protocol, however, the implementation of the server and client lends to easily replacing SOAP another layer (e.g. BlazeDS).

 

Architecture Details:

Server Application Architecture

The server portion of the framework is comprised on the following high level components:

  • Java 6
  • MySQL (or PostgreSQL)
  • Hibernate
  • Spring Framework (including Spring Security)
  • CXF SOAP (formerly XFire)
  • Red5 (optional add-on for media)
  • BlazeDS (AMF communications)

Spring. The Spring Framework provides an alternative to conventional J2EE server side programming. Spring is built upon the paradigm known as Inversion of Control (IOC). In a nutshell, the primary different between a Spring managed resource and a J2EE resource is that instead of a section of code in a class asking for a resource via JNDI (as in classic J2EE), the Spring resource has a bean setter for an interface matching the type of resource needed and then Spring takes care of “injecting” that resource into the class instance before it’s ever needed. The advantage is that the code requiring a resource can be decoupled from the mechanism for actually acquiring that resource.

Spring configuration deals with Javabeans as it’s fundamental object. In a Spring configuration one defines a series of beans representing resources or beans which do work using the resources. Once beans are defined they are woven together using dependency injection.

Spring also heavily utilizes interfaces in class signatures. This is advantageous so that concrete implementations of an interface can be swapped out without the class where the resource is used being affected. An example would be the database access object (DAO). A DAO implementation provides implementations for methods to access the data while hiding the details of how that data is acquired. So, in one instance the DAO could be an implementation of Hibernate and in another JDO. So long as the implementations adhere to the interface they should be swappable.

Spring out of the box has a component known as core. The core component provides the basic IoC functionality and basic framework for a bare bones Spring instance. There are numerous other modules: MVC, Security, Test, JDBC, etc. Each module can be added to the classpath and configuration as additional functionality is needed. The Spring MVC module provides form based functionality for conventional web pages.

MVC. The Spring MVC framework is used to implement login, password reset and sign up.

Security. Application security is handled via the Spring Security module. Spring Security is very configurable and provides role-based security. Roles are used to define various security rules dictating which role has access to a given resource. Resources can be as high level as a URL (in the case of a servlet) or as granular as a method call (from a SOAP interface or other managed service in Spring). Aspect Oriented programming is heavily used in Spring to provide declarative security.

When a user first visits the site, served by the Spring MVC Framework, an HTTP session is bound. By default a session can be given a default role, ROLE_ANONYMOUS. If a user logs in various other roles can be bound to that session. Spring Security handles redirecting a user to a login page if the resource requested cannot be satisfied for that session’s role.

Hibernate. Hibernate maps the server side business objects (POJO’s) to database tables. The Hibernate implementation classes implement a generic DAO interface which defines a series of methods which provide access to the underlying POJO’s. The Spring JDBC module is defined for a particular database and then injected into the Hibernate service. The Hibernate layer creates a series of mappings between a Java class (POJO) and a database table. The particular database is abstracted by the Hibernate layer. If database specific features are used sparingly it is quite possible to swap out one database for another.

Hibernate has many advanced features such as caching, code based queries and fine grain control over writing custom queries if needed.

SOAP. The SOAP interface is implemented using the CXF framework. CXF is powerful and flexible. One can design code first interfaces (SOAP interfaces generated from existing code) or schema-based interfaces (the SOAP interface is first designed via a WSDL and then implemented). Each has it’s trade offs. Code based schemas are easier to develop and provide quicker development cycles. Code based schemas are probably more appropriate when the client and the server can both be modified, such is the case with etendi. For services accessed by third party clients, the schema based interface seems to be more rigorous and less prone to errors from code based changes.

AMF. BlazeDS provides a very similar means for creating an RPC interface as SOAP. The primary different is that BlazeDS is based on Actionscript Message Format (AMF) and is primarily only available to Flash clents (however some Java and PHP implementations do exist). BlazeDS is still relatively immature in comparison to CXF and does not have the same level of customizability.

BlazeDS also provides a messaging framework. If real time messaging is needed without media streaming capabilities then BlazeDS provides a decent alternative to Red5. Red5 seems to have more maturity at this point.

Client Application Architecture

The client application is a Rich Internet Application written in Flex 3. Flex 3 is an application programming framework for creating Flash-based applications. Flex provides a rich set of GUI components and communications API’s.

The client application communicates with the server via three primary mechanisms: RTMP, HTTP-based (SOAP, Rest, etc) or AMF (BlazeDS) requests. The implementation of the data layer is abstracted such that the client code is not dependent on the underlying implementation details, much like the DAO pattern used on the server. Using this scheme an AMF based data access layer can be swapped out for a SOAP based one or vice versa.

All requests from the browser or client application are subject to the security rules implemented on the server (Spring Security). Authentication can be implemented in several ways. Some applications may require broad security restrictions requiring a user to authenticate prior to loading the client application. Others maybe implement finer grain security rules so that the client application can load via an unauthenticated session, but is subsequently required to provide a means to authenticate the user before any data calls are made to the data services (SOAP, AMF, RTMP, etc). Finally, any combination of the two can be employed as needed.

Flex applications are event-based. Virtually all operations in a Flash application are asynchronous. Event driven development lends itself well to creating non-blocking user interfaces which can fetch data in the background while the GUI remains responsive.

The client application is broken out much like a server-side application utilizing the MVC pattern. The data layer is built upon an API which the controller code uses to acquire data. A model of the server-side data is maintained in the client. The model is updated via calls through the data access layer. The view layer utilizes the model to bind data to GUI controls and provide a means for the user to interact with the data.

 

0 Comments

Solution Brief: Agilent – Quick Quote Data Center

Business Summary of the Solution:

Agilent Technologies is the world’s premier measurement company, delivering advanced tools for scientists, researchers, businesses and government agencies. A custom quoting system had been created by Zia to enable rapid response to customer product inquiries. The volume of sales leads required a secure interface for the sales team and call centers to easily track and act upon those leads. This necessitated a custom reporting application that could: display quote histories of customers, provide regional- or division-level reporting of leads, provide a capacity for downloading or resending quotes. The implementation needs to adhere to the data standards adopted for lead generation and processing.

Technical Summary:

Quote data, captured by the custom quote web application, is extracted at short intervals to populate an Oracle operational data store. The operational data store contains the fine-grain quote information: customer contact information, product details, quote locale information. That operational data is summarized as a data mart with navigable views. Aggregate information, like the customer quote volume and quote recency, are calculated and loaded into the data mart. The user interface provides access at the fine-grain level of quote detail or summarized views of the aggregate information.

Tech Stack:

Database Technologies

  • Oracle Databases
  • Oracle Store Procedures
  • PL/SQL
  • Oracle Job Queue

Web Technologies

  • Spring/Hibernate Framework
  • Acegi Security System for Spring

Other Technologies

  • Java
  • Javascript
  • JUnit
  • Ant
  • Eclipse
  • Excel

Deployment Platforms

  • Linux – Red Hat Enterprise 4

 

0 Comments

Solution Brief: Agilent – Data Integration

Business Summary of the Solution:

Agilent Technologies is the world’s premier measurement company, delivering advanced tools for scientists, researchers, businesses and government agencies. One way customers engage the Agilent sales force by placing quotes online. The configuration of product pricing varies from region to region. The master record for the product information resides in Oracle’s ERP but quotes are delivered from a custom web application. The challenge was to integrate data from the back-end data store, departmental-level databases and the database used by the quoting application. This data integration project required implementing optimized data services that leveraged the existing business process within Agilent to ensure all quoted product information was accurate, timely and maintainable.

Technical Summary:

The architected solution mapped several data sources to a custom data integration application. The data sources included SQL Server, MS Access, MS Excel and Oracle. At the departmental level, standard product templates were designed for capturing new product information and product change information. Data feeds were established between the ERP and the data integrator. Data transformation jobs were created using SQL Server’s Data Transformation Services (DTS).

The DTS jobs were developed to extract and verify data from sources, transform that data to the quoting system table structures and push to the quoting system. At the quoting system, data was loaded using a combination of shell scripting, Java routines and Oracle stored procedures. Stored procedures in the target Oracle database were also implemented for special purpose data loads.

Tech Stack:

Database Technologies

  • Oracle Databases
  • SQL Server Databases
  • Microsoft Access Databases
  • Microsoft Data Transformation Services
  • PL/SQL
  • T-SQL
  • Microsoft VBA for Access

Web Technologies

  • Expresso Framework

Other Technologies

  • Java
  • Javascript
  • JUnit
  • Ant
  • Eclipse
  • Excel

Deployment Platforms

  • Linux – Red Hat Enterprise 4
  • Windows 2003 Server

 

0 Comments

Enterprise 2.0 Solutions

What does Enterprise 2.0 mean to your business?

“Success with Enterprise 2.0 depends less on new and untested technology investments and more on reaping the power of new forms of business models, newly enabled online communities and collaborative processes. The risk with Enterprise 2.0 has more to do with ignoring the easy-win business benefits that can be gained once the relevant applications and platforms are in place. This is not just relevant to information-intensive industries such as media, recruiting and IT, but for enterprises across the board.”

- Gartner Group

 

How ZIA delivers on the promise of Enterprise 2.0


Enterprise 2.0 Solution Briefs:

 

Agilent Technologies – Sales Lead Sharing

Agilent Technologies is the world’s premier measurement company, delivering advanced tools for scientists, researchers, businesses and government agencies. Agilent’s sales success depends upon efficient communication with distribution partners located in over thirty countries. The challenge was to create a hosted solution that could be securely accessed by partners, localized to the partners language preferences and populated with the most timely content on sales opportunities. Read more…

 

 

etendi BRIDGE – Secure Social Networking for Families

etendi BRIDGE, an easy-to-use, interactive, safe and secure web-based meeting place that bridges the gap when parents and kids can’t be together. Developed specifically for non-custodial divorced parents or co-parenting situations, grandparents, military families, or the heavy business traveler, etendi BRIDGE allows family members to stay connected by providing a single place for them to be together online. Features include live video phone calling, shared spaces for photos, videos and documents, personal notes, an interactive white board, and a shared calendar. etendi BRIDGE leapfrogs existing web-based messaging or video communication tools by providing in one web location everything needed to create a true virtual meeting place. Parents, kids and other family members can be online at the same time and have a video phone call, play games or work on homework together. When they can’t be together online, they can create and leave text or video “Thinking of You” messages and use shared web spaces to build custom web pages, photo albums, explore common interests, plan events and build shared memories. Read more…

 

0 Comments

Fresh Docs Blog Home

iPhone/iPad
Android

iPhone/iPad App

Fresh Docs

Zia Consulting has developed Fresh Docs, a native iPhone and iPad application, that allows mobile access to CMIS Content Repositories which support the CMIS 1.0 OASIS Standard.  In theory, the application should be able to communicate with any CMIS Server which is in compliance with the latest CMIS OASIS Standard.  Fresh Docs has been tested against the latest versions of Alfresco, IBM FileNet (currently known as IBM Content Manager Technology Preview for OASIS CMIS), Sharepoint 2010, OpenText and Nuxeo.

The app is available on the Apple iTunes Store.

The app also supports several draft versions of the CMIS standard which were implemented in earlier Alfresco releases.  The app runs against most Alfresco releases that come packaged with a CMIS Server; no additional software needs to be installed on the servers and no configuration of Alfresco is required.  Addittionaly, the app has been tested against and runs against

Previously, Fresh Docs was tied to Alfresco’s CMIS Server and only implemented the draft versions of the CMIS Standard.  Going forward Fresh Docs will no longer be tied to a specific vendor (i.e. Alfresco) and will continued to be enhanced to browse any CMIS Content Repository that is in compliance with the latest CMIS OASIS Standard!  However, vendor specific implementations will be included; currently, vendor specific logic is available only for Alfresco Document Repositories.

Future versions containing new functionality will be available in a commercial version of the application -Fresh Docs+ (name has not been finalized). A Roadmap/Feature list can be found below.  We will need beta testers for the commercial releases, so stay in touch.

If you have any questions or comments, send us an email at iphone@ziaconsulting.com.

Update to Settings

Please note that the Fresh Docs setting ‘Web App Location’ has been replaced with the setting “Service Document”. The “Service Document” setting must point to a AtomPub Service Document for the CMIS Service. Please verify that the path specified is correct.

The default Alfresco AtomPub Service Document location is
/alfresco/service/cmis

For Alfresco Releases that contain draft CMIS implementations, the AtomPub Service Document Location is
/alfresco/service/api/cmis

Latest Release:

November 1, 2010
Fresh Docs 1.25.2 Now Available in the App Store

Fresh Docs version 1.25.2 includes the following enhancements:
[list type=check]

  • Now Available on the iPad
  • Improved CMIS support and now supports the CMIS 1.0 OASIS Standard.  This means that Fresh Docs can now connect to all the latest Alfresco releases.  Futhermore, this app all works with IBM’s CMIS Service for FileNet.  Although only thourougly tested on Alfresco’s CMIS Document Repository and FileNet’s Document Repository, in theory, this release should be able to browse most document repositories that are CMIS 1.0 compliant.
  • Ability to open a copy of a document in another app using the “Send-To Document Support” feature – Opens the document you are viewing in applications like Good Reader, Pages, Docs to Go, etc.
  • Branding & Chrome updates
  • Lots of bug fixes.

[/list]

Current Features:

  • Support for CMIS 1.0 OASIS Standard
  • Browse document libraries
  • Full-text search for documents
  • View most common document formats, including:
  • Save “favorite” files to the phone for offline access (when cell service and wifi are slow or unavailable)
  • Attach documents to outgoing emails
  • “Send To” – Opens the document you are viewing in applications like Good Reader, Pages, Docs to Go, etc.

Roadmap:

The following list of features are features that have been identified for Fresh Docs.  The list is not in any particular order.

  • View & Edit Metadata
  • Create new Folders
  • Upload Photos
  • Document Support: Accept documents from other applications.
  • Improved and more robust support for the CMIS 1.0 OASIS Standard
  • Versioning Support
  • Ability to configure and browse multiple CMIS Document repositories
  • Favorites: Ability to favorite a folder
  • Local metadata storage
  • Synchronization of folders, files & metadata
  • Search: Enhanced Search, Offline Search, Ranking, Local Search
  • iOS Enhancements: iPad Split View, App Backgrounding, enhanced multitasking
  • Increased iOS Document Support – Printing, Previewing, User Interaction
  • Possible Support for other Vendor Specific Functionality
  • User Interaction & Usability Enhancements

Future releases of this application may include workflow approval/rejection & task notification, access to blogs & discussions, and other Alfresco Share features.  Please feel free to contact us with enhancement requests.

Open Source Status:

The iPhone source is open sourced on Google Code.

How do I change the Server Settings for Fresh Docs?:

Update to Settings

Please note that the Fresh Docs setting ‘Web App Location’ has been replaced with the setting “Service Document”. The “Service Document” setting must point to a AtomPub Service Document for the CMIS Service. Please verify that the path specified is correct.

The default Alfresco AtomPub Service Document location is
/alfresco/service/cmis

For Alfresco Releases that contain draft CMIS implementations, the AtomPub Service Document Location is
/alfresco/service/api/cmis

Screenshots:

Fresh Docs for Alfresco Android App

Zia Consulting has developed a native Android application that allows mobile access to an Alfresco document repository. This application runs against the most recent Alfresco releases; no additional software needs to be installed on the servers and no configuration of Alfresco is required. The App is in beta and available in theAndroid Marketplace, you search keywords like “Zia”, “Fresh Docs”, or “Alfresco”. It is a free app.

This has been open sourced and available on github. If you have any questions or comments, send us an email at android@ziaconsulting.com. We will still need beta testers for future releases, so stay in touch.

Features:

  • Browse document libraries
  • Full-text search for documents
  • View most common document formats, including:
    • Microsoft Office (Word, Excel, PowerPoint)
    • PDF
    • Plain Text
    • Image Files
    • Save “favorite” files to the phone for offline access
      (when cell service and wifi are slow or unavailable)
    • Attach documents to outgoing emails
    • Voice Search
    • Save multiple server configurations
Related articles
Enhanced by Zemanta

 

0 Comments