Last updated June 25, 2013 12:21, by sergei123
Feedicon  

We supports WebOS & Enterprise Portal development.

Ajax Portal

Ajax Portal is cross-platform cross-browser Web 2.0/Web 3.0 solution which is based on a new architecture of Enterprise Portals. The portal can be work as Mashup (WOA approach). The portal provides Portlet/Portal API, Services. It's posible to use the Decoration module of the portal as part of the standard Web application.

Hot news: Our home site AJAXPORTAL.ORG is available!!!

Ajax Portal

We propose the new engine (Ajax Portal technology) for Enterprise Portals. Ajax Portal technology is based on Web 2.0 features and concept of rich applications. The key point is usage of Ajax approach totally. Ajax Portal technology is oriented on B2B and B2C solutions.

We support WebOS development. The difference between WebOS and Enterprise Portal is possibility to use browser window as desktop and move the portles like window on your PC.

Enterprise Ajax Portal is software product which is based on Ajax Portal technology. Enterprise Ajax Portal aggregates contents of Internet/Intranet sites and Web-applications on one Portal Page (or several portal pages if it's necessary). The sites (its small part or mobile version) and Web-applications are put in allocated subwindows (portlet). Some huge applications may open several portlets simultaneously in the same portal page. Technically Enterprise Ajax Portal proposes the alternative of IFRAME tag usage in new generation portals based on Ajax technology (see ajax4all library).

Picture 1. Portal Page in browser aggregates contents from different Internet/Intranet sites

Now you as end customer should not visit several sites to check: last news, new letters in your e-Mail box, number of your flight miles in your account and even the alerts about sales in your favorite shop. It's very important for analysis of business and financial information, because it saves a time of decision-making. Your may use a prepared selection (which is prepared before by you or another person(s)). As result you save the time because you should not do boring navigation and surfing and is able to see the most interested information for you. Enterprise Ajax Portal is compromise between conveniences, human laziness and modern software features.

Of course, you have possibility to customize the portal page for your needs without software developer (Personalization is key feature). Enterprise Ajax Portal makes the software user-friendly.

If you use Enterprise Ajax Portal you save the TIME, MONEY and TRAFFIC on SERVER SIDE. Plus, you get modern features of Enterprise Portals and Web 2.0 solutions. Ooo, who tell you that it's Web 2.0 Portal? We think this is Web 3.0 Portal!

P.S. Enterprise Ajax Portal is your choice for Business and Life. This is solution for all people who has computer and uses it every day.

Ajax Portal Team.


-----------------------------------------------------------------------------------

Introduction

Too many people don't understand difference between Enterprise Portal (see the term on wikipedia) and Web Portal (see the term on wikipedia). It's not a problem. Only software developer is able to understand it. You as end customer have to know only that this approach saves time of site development and as result money for site/portal owners, IT companies and software developers.

Picture 2. Product segments

Enterprise Ajax Portal provides rich interactive interface, modern features like Drag&Drop, Ajax content update and absolutely new portal features like region states, browser page approach, universal layout and portlet orchestration.

Who told you that you need any software development in Enterprise Portal? You can, but you should not. Enterprise Ajax Portal can be use by:

Please, show this site to your IT manager or software developer in your company.

You may to add yourself in our Google group http://groups.google.com/group/ajaxportal. As result you will receive month reports about our achievements, new releases and new available documentation.

1.1. Ajax Portal For Software Developers

We extend existing enterprise solutions which are based on standard JSR-168 and JSR-286. We don't use any bridges like JSR-301 and JSR-329 based. We use AJAX technology totally. It gives us a possibility to build easy and high performance portal solution which called Enterprise Ajax Portal. We evolve classic Enterprise Portal approach to Web 2.0 solution (Intranet 2.0).

The first main advantage of our approach is usage of standard Web applications without changes as Portlets (Widgets). It saves your money for software development or even excludes this necessity. The second advantage is AJAX usage. Any portlet changes are doing without reloading of portal page (loading content, any actions in the portlet, etc.). It saves Internet traffic from/to portal server in several times.

We support enterprise development by JSP and JSF tag libraries.

Client side part of our product is written on JavaScript. It gives possibility to use it with Java, .NET, PHP, Perl, etc. solutions.

We are going to propose a new JSR for Java community about Portal and Portlets of the new generation.

Just read about our product below and try to use it in your life.

You may to add yourself in our Google group http://groups.google.com/group/ajaxportal. As result you will receive month reports about our achievements, new releases and new available documentation.

See How works JavaScript API, How to create static page, Portlet API

1.2. News

1.3. Requirements

Enterprise Ajax Portal works with the following browsers:

MS Internet Explorer 7, Mozilla Firefox 3.0, Opera 9,

Safari 3.0, Google Chrome 15

1.4. What is Ajax Portal?

I propose a new enterprise portal architecture (Ajax Portal) which is based on Ajax calls exclusively. It simplifies portlet creation and even allows to forget about portlets as portal server side components. Instead, I propose using any static or dynamic HTML/XHTML resource as a portlet. It gives the possibility to use standard Web applications based on JSF, Tapestry, Struts 1/2, Webwork frameworks, and even non Java-based technologies, such as ASP, ASP.NET, Perl, PHP, etc. as portlets (content sources for portlets on the portal page).

Unlike a portlet bridge (JSR 301 and JSR 329 standards), Ajax Portal client side requests the HTML/XHTML resource (portlet) for both context and data.

Ajax portal uses ajax4all subtechnology (implementation of Ajax Submit pattern) for supporting the applications based on Lite Ajax pattern (the application uses standard controls of HTML form).

For resolving security issues (e.g. browser security and firewall rules) and/or opening a secure channel, all Ajax requests can be sent through HTTP Proxy which retranslates requests and responses to and from the portlet server.

To use existing Web applications as portlets and to exclude the need to modify these applications, Ajax Portal has a special Content Aggregator component. This component allows getting the body of HTML/XHTML resource (content of the BODY tag) or content of any element of HTML/XHTML resource by value of id attribute for Content Injection into the portal page. Content Aggregator also extracts JavaScript links and sources and CSS styles and injects them into the portal page by a special method (specified by portal implementation).

Portlets may be set in portlet regions on the portal page. Such portlets have the RegionByDefault parameter specifying the region where the portlet will be added during portlet installation in the portal page. Ajax Portal allows to Drag&Drop portlets within a region and from one region into another. Region usage gives an additional possibility for portlet decoration (view of the portlet depends on the state of both the region and the portlet).

The greatest event in history of our project: Standard approach for Enterprise Portal was dead 26 April 2010 when Ajax Portal example with ajax4all library was started. Ajax Submit pattern was implemented completely.

1.5. Main Features

Features implemented:

Technical features:

Features in progress:

1.6. Why Ajax Portal?

Update of portlet content is executed by Ajax Call without reloading the Portal Page. This approach saves Internet traffic between portal server and portlets.

Portal Page defines the layout (position of each portlet on portal page), but the layout can be changed by the Client Side API.

Ajax Portal is platform-independent and programming languages-independent (client side is implemented as JavaScript library (API), but the server side can be based on Java, .NET, Perl, PHP, etc.).

Only Personalization Service and HttpProxy components are required for Ajax Portal functionality. Both server side components have to implement interfaces described by Ajax Portal specification. Other server side services and components are optional.

CMS is out of scope of Ajax Portal specification. A software developer can use any CMS, databases and any other sources for content management.

Ajax Portal JavaScript library (API) provides a possibility to create, modify and delete any portlets and regions on the client side (in the browser).

1.7. FAQ

See FAQ on wiki

1.8. Overview of Ajax Portal Technology

Ajax Portal is a technology for web portal development which supports content aggregation from different instances (content of any HTML/XHTML resources in Internet). It's possible to use standard web applications as portlets. The server technology doesn't matter (Java, .NET, ASP, PHP, Perl, etc.).

Picture 3. Screenshot of Enterprise Ajax Portal demo version 1.0.1

Picture 4. Mashup demo page for Minsk Startup Weekend No. 6 (Apr 30 – May 1, 2011 screenshot), Enterprise Ajax Portal version 1.0.3

Picture 5. Demo - Internet newspaper http://sokolovbook.narod.ru/en/demotb/

Picture 6. Demo - HTML prototype of Social Network application http://sokolovbook.narod.ru/socnet/index.html. The application has three pages. There're menu buttons for navigation between pages.

Picture 7. Demo - Social Network application in Ajax Portal (all three pages are open in different portlets; navigation buttons are hidden; personalization of each page are available)

1.9. Basic Terms

Ajax Portal proposes a different terminology than JSR 286:

Picture 8. Basic Portal Page components (Content Areas, Portlets and Portlet Regions)

1.10. Architecture

We extend existing enterprise solutions which are based on standard JSR-168 and JSR-286. We don't use any bridges like JSR-301 and JSR-329 based ones. We use AJAX technology exclusively. It gives us the possibility to develop easy and high performance portal solutions which are called Enterprise Ajax Portal. We implement classic Enterprise Portal approach by Web 2.0 solution (Intranet 2.0).

Architecturally Ajax Portal consists of two main parts:

Server side of Ajax Portal includes the following main components (see picture below):

  1. Portlet connector - portlet container of JSR168/JSR286 portlets.
  2. Content aggregator - supports work with standard Web applications.
  3. Portal Web application - provides implementation of main services (e.g. Personalization Service, etc.).
  4. HTTP Proxy - provides the possibility to load content (by Ajax calls) from resources outside of portal domain.

Client side of Ajax Portal includes the following main components (see picture below):

  1. Portal Page - provides minimal set of CSS and JavaScript.
  2. JavaScript UI Library - provides the main UI components of the portal: PortletPage, Region and Portlet. The library supports all interactive effects as Drag&Drop, themes for regions/portlets (especially for accordion and tabs functionality).
  3. JavaScript Portal API - supports Ajax Call to the portal and portlets.
  4. Content aggregator - supports Content Aggregation pattern by ajax4all JavaScript library.

Picture 9. Ajax Portal architecture

Client (browser) connects to Ajax Portal Server using HTTP. Ajax Portal Server is a Web Application. The Portal builds a portal page (HTML/XHTML page and required images, CSS files and scripts). The portal page defines:

  1. the layout of the portal page,
  2. the navigation mechanism,
  3. the possibility to change portal settings.

The portal page may contain the content of the portlets or it can be loaded by client side of portal directly from portlet server or through the HTTPProxy component.

Content of each portlet can be loaded by the following ways:

  1. directly from portlet application (portlet server),
  2. form portlet server thought HttpProxy component,
  3. portal server injects content of portlets in the portal page during its rendering.

The difference of principle is Portlet Phases (see picture below). The classic approach uses 3 phases of relations between portal and portlets: action (apply of changes in current portlet), event sending and rendering of content. For Ajax Portal only the render phase is required. Each activity between portal-portlet and portlet-portlet is supported by Ajax calls. By Ajax call the portlet:

  1. sends parameters and receives a new portlet content,
  2. sends application data to the portlet and receives the result code (e.g. success or not),
  3. sends application data to another portlet (portlet intercommunication).

The picture demonstrates parameter sending and receiving of the new portlet content. An important feature is that the portal page is not reloaded. The portal sends only the portlet content.

Picture 10. Portlet phases in Ajax Portal

Everybody knows about security issues with Ajax calls outside of current domain, but Web Applications Working Group with W3C created Cross-Origin Resource Sharing. It allows access to resources outside of current domain by Ajax.

Ajax Portal provides HTTP Proxy component which helps to connect outside of current domain without Cross-Origin Resource Sharing (it's actual for old browsers). In addition HTTP Proxy component helps to support SSO. It's not possible to store password and any security certificates in JavaScript code (all Portlets are part of portal page and can access to all properties and methods). As a result, all security certificates, SSO tickets are added during the proxy of Ajax calls by HTTP Proxy component.

Picture 11. Component and technology pool

1.11. How Does It Work?

How does JavaScript API work?

Portlet Core: TBD

Portlet API

2. Special Appeal No. 1: Region States

Ajax portal supports five states of Regions. Each region state provides a specific decoration for the Region and an additional decoration for the Portlets in the Region.

Picture 12. Nodecoration region state.

Picture 13. Window region state.

Picture 14. Standard region state.

Picture 15. Accordion region state.

Picture 16. Tabs region state.

3. Special Appeal No. 2: Exotic Portlet Themes

Ajax Portal supports the following exotic themes for portlets in base package (see below). The themes are supported only for Portlets outside of any Region.

Picture 17. Alternative1 theme.

Picture 18. Alternative2 theme.

Picture 19. Alternative3 theme.

Picture 20. Apple theme.

4. How to Write Portlets for Ajax Portal

4.1. Use Existing Web Applications

Ajax Portal provides the possibility to use standard Web applications as portlets without changes.

It's possible by the following ways:

4.2. Portlet API

Ajax Portal team proposes Portlet API which is based on MicroServlet MVC framework.

Portlet API of Ajax Portal helps to develop a Web application which can work as portlet (has portlet descriptor, implement portlet lifecycle, etc.). It means any portlet developed by Portlet API of Ajax Portal, can be used as standard Web application.

Current Portlet API implementation differs from JSR 286, but in general we try to follow JSR 286. In future we are planning to propose a new JSR request for Java community which will specify portlets and portals of new generation.

Portal Core TBD

Portlet API: Lifecycle

Why do we use MicroServlet framework as base of Portlet API?

Portlet API uses the following annotations which come from MicroServlet API:

Portlet API creates its own implementation of RenderMode annotation. The annotation marks the method which should be executed for the portlet’s render mode.

See demo of Portlet API: }

5. A New JSR Request for Java Community

We are planning to propose a new JSR request for Java community which will specify portlets and portals of new generation. The reasons for creation of the new JSR:

  1. JSR168 and JSR286 don't specify Portal Server
  2. JSR168 and JSR286 don't support Ajax. JSR301 and JSR329 are hot fixed drawbacks of JSR168 and JSR286.
  3. Region approach is standard de facto, but it's not specified by JSR168 and JSR286.
  4. PortletMode should be enum (Java type).
  5. WindowState transforms to PortletState, because Ajax Portal supports Tabs and Accordion region states. PortletState should be enum (Java type).
  6. add new RegionState enum, which supports the following enum values: NODECORATION, WINDOW, STANDARD, ACCORDION, TABS.
  7. TBD

6. About Myself

I'm a lead software engineer with 18 years of development experience. My specialty is database and web development for business applications. For the last 6 years I've been concentrated on the development under Java platform, though I have good experience in C, C++, C#, VB (VBScript), Perl and Flash (action script and animation) development. I was a system architect on my two latest projects. I have deep experience in architecture documentation development.

I started my portal experience from WebLogic Portal 8.0 in 2005.

I've already published 4 books:


CSS3 в примери + CD. 336 pages, 2009, Asenevtsi (Bulgaria).

CSS 3 в примерах.352 pages, 2007, Williams (Russia).

HTML и CSS в примерах, типовых решениях и задачах. 416 pages, 2007, Williams (Russia).

JavaScript в примерах, типовых решениях и задачах. 592 pages, 2006, Williams (Russia).


I have consolidated the following ideas, proposals and experience in Ajax Portal project:

  1. my four-and-a-half-years’ experience in maintenance company intranet in MDTVision (an IBM company),
  2. my proposal of intranet console for MDTVision, EPAM and Exadel,
  3. a small library for the second edition of my JavaScript book,
  4. my experience of enterprise portal development,
  5. ALL components (region states in Ajax Portal), which implement State pattern.

7. Links

Our team: http://code.google.com/p/ajaxportal/people/list

Home site: http://sokolovbook.narod.ru/en/ajaxportal.html

Google group: http://groups.google.com/group/ajaxportal

Project blog: English version and Russian version (Русская версия)

About myself: http://code.google.com/p/ajaxportal/wiki/about_me

Our code on SourceForge: http://sourceforge.net/projects/ajaxportal/

P.S. You can find more details about the project on the Ajax Portal home page

Ajax Portal team

Contact person: Sergei Sokolov, ssokolov@ajaxportal.org