Presentation is loading. Please wait.

Presentation is loading. Please wait.

Turning Portlets into Services: The Consumer Profile Oscar Díaz, Salvador Trujillo, Sandy Pérez ONEKIN Research group University of the Basque Country.

Similar presentations


Presentation on theme: "Turning Portlets into Services: The Consumer Profile Oscar Díaz, Salvador Trujillo, Sandy Pérez ONEKIN Research group University of the Basque Country."— Presentation transcript:

1 Turning Portlets into Services: The Consumer Profile Oscar Díaz, Salvador Trujillo, Sandy Pérez ONEKIN Research group University of the Basque Country San Sebastián (Spain) May 11th, 2007 The 16th International World Wide Web Conference

2 O. Díaz, S. Trujillo & S. Pérez 2 Outline  Problem statement: portlet variability  What can vary  When can it vary  How is it supported

3 O. Díaz, S. Trujillo & S. Pérez 3 Service Oriented Architecture  “SOA can be regarded as a style of information systems architecture that enables the creation of applications that are built by combining loosely coupled and interoperable services” © Elements of SOA, by Dirk Krafzig, Karl Banke, and Dirk Slama. Enterprise SOA.Prentice Hall,2005

4 O. Díaz, S. Trujillo & S. Pérez 4 Portlet-based SOA  Portlets can be the enablers of SOA at the front end “Front-end” SOA PORTLET REPOSITORY PORTLET BUS SOA PORTLET REPOSITORY PORTLET BUS

5 O. Díaz, S. Trujillo & S. Pérez 5 From Web Services to Portlets XML Request XML Response Web Services Client Application User Interface WS Proxy 2 nd Hand Car Database Search for Cars Car Search Service request Client application Portlet User Interface Business Logic response SOA PORTLET REPOSITORY PORTLET BUS

6 O. Díaz, S. Trujillo & S. Pérez 6 Portlet repository  Portlet Swap: jboss.org  Portlet Exchange: portletexchange.com  Open Source Portlet Repository Project (2006): “a library of ready-to-run applications that you can download and deploy directly into your portal with, in most cases, no additional setups or configurations” SOA PORTLET REPOSITORY PORTLET BUS

7 O. Díaz, S. Trujillo & S. Pérez 7 “Portlet bus” SOA PORTLET REPOSITORY PORTLET BUS  Portlet interoperability based on the WSRP standard  The portal as the most popular portlet consumer WebSphere portlet Plumptree portlet Oracle portlet eXo portal

8 O. Díaz, S. Trujillo & S. Pérez 8 WSRP protocol (registration) Portlet ConsumerWSRP Producer getServiceDescription As an unregistered consumer Metadata Metadata indicates that registration is required, and certain data is required for registration register With registration data register Registration context Unique to the consumer getServiceDescription As a registered consumer Metadata + Offered portlets SOA PORTLET REPOSITORY PORTLET BUS

9 O. Díaz, S. Trujillo & S. Pérez 9 Portlets as Web components (reusable) MyBrowser End User 1 MyBrowser End User 2 Portal 1 Consumer 1 Portal 2 Consumer 2 HTTP Producer A Producer B Producer L SOAP SOA PORTLET REPOSITORY PORTLET BUS

10 O. Díaz, S. Trujillo & S. Pérez 10 But this is not enough …  Portlets are coarse-grained components They realise full-fledged applications (not just functions)  The larger the component, the lower the reuse “front-end” SOA PORTLET REPOSITORY PORTLET BUS VARIABILITY

11 O. Díaz, S. Trujillo & S. Pérez 11 Portlet ubiquitousness  The capacity of a component for being customized to the idiosyncrasies of distinct consumer applications Portlet Consumer (e.g. a Portal) SOA PORTLET VARIABILITY PORTLET REPOSITORY PORTLET BUS

12 O. Díaz, S. Trujillo & S. Pérez 12 Outline  Introducting the setting: portlet variability  What can vary  When can it vary  How is it supported

13 O. Díaz, S. Trujillo & S. Pérez 13 What can vary  Portlet variations can manifest in any of the three layers: the presentation layer –rebranding the rendering with logos and banners, changing the labels and text, changing the entry fields and so on. the functional layer –tuning the process to fit the consumer demands. the data layer –distinct functionalities will probably require distinct data.

14 O. Díaz, S. Trujillo & S. Pérez 14 e.g. presentation-style variants  A portlet output must be aesthetically harmonised with the presentation guidelines of the hosting Portal  WSRP supported Blue-ish Green-ish Red-ish

15 O. Díaz, S. Trujillo & S. Pérez 15 e.g. functional variants  Previous variants where domain independent  Most often, variations are domain dependent

16 O. Díaz, S. Trujillo & S. Pérez 16 flightBooking sample case  Domain: an air carrier selling tickets through distinct travel agencies:  Portlet: flightBooking

17 O. Díaz, S. Trujillo & S. Pérez 17 What can vary on flightBooking?  payment, indicates how travel agencies (portlet consumers) are compensated  checkin, some travel agencies do not allow for this functionality  flightTypes, indicates the focus on domestic or international flights  portletPref, permits the travel agency to tune which trip parameters end users can set a default for

18 O. Díaz, S. Trujillo & S. Pérez 18 The consumer model  A feature is any characteristic, placed by the carrier and used by the travel agency to describe how the flight booking process should be tailored to the agency’s idiosyncrasies.  The Consumer Model is a feature model that captures the variation space for consumers of a given portlet

19 O. Díaz, S. Trujillo & S. Pérez 19 Consumer model for the sample case (*) and alternativeor mandatory optionalrepetitions 1..* * (*) FODA notation

20 O. Díaz, S. Trujillo & S. Pérez 20 The Consumer Profile  A Consumer Profile instantiates the consumer model for a particular consumer (e.g. Thomas Cook travel agency).

21 O. Díaz, S. Trujillo & S. Pérez 21 The consumer profile for Thomas Cook travel agency

22 O. Díaz, S. Trujillo & S. Pérez 22 Outline  Introducting the setting: portlet variability  What can vary  When can it vary  How is it supported

23 O. Díaz, S. Trujillo & S. Pérez 23 When can it vary  When are blue decorators set?  We need to indicate for each feature when it needs to be committed to a particular variant (binding time)

24 O. Díaz, S. Trujillo & S. Pérez 24 Binding time: portlet setting  configuration time, the decision is set by the portal administrator any time during the lifetime of a running portlet  runtime, the decision is resolved during the enactment of the portlet (e.g. default departure airport) adaptive: automatically based on the user profile adaptable: user intervention through the edit mode

25 O. Díaz, S. Trujillo & S. Pérez 25 But …  Handling all variants through parameterization would make the implementation too complex The resulting code could be very cumbersome to develop and maintain  It is a problem of scalability Total number of variants (aprox.) = 3 X 2 X 2 X 2 x 2 x 2 = 96 combinations

26 O. Díaz, S. Trujillo & S. Pérez 26 Moreover …  Features can impact distinct artifacts

27 O. Díaz, S. Trujillo & S. Pérez 27 Binding time  Configuration time  Runtime: adaptive adaptable  Development time, the decision is taken when the portlet is being developed

28 O. Díaz, S. Trujillo & S. Pérez 28 Annotating the consumer model with binding times

29 O. Díaz, S. Trujillo & S. Pérez 29 Outline  Introducting the setting: portlet variability  What can vary  When can it vary  How is it supported

30 O. Díaz, S. Trujillo & S. Pérez 30 Software Product Line Approach  Shift of focus from a specific portlet to a portlet domain that sets the variation space (feature model)  Two processes domain engineering is in charge of determining the commonality and the variability among the portlet family: feature model + core assets application engineering is responsible for deriving a specific application portlet  Distinguishing between these processes permits to separate construction of the platform for the portlet family from production of the custom application portlet

31 O. Díaz, S. Trujillo & S. Pérez 31 Moving Software Product Lines to portlet development What needs to be changed in this diagram? Portlet consumerWSRP Producer getServiceDescription As an unregistered consumer Metadata Metadata indicates that registration is required, and certain data is required for registration register With registration data register Registration context Unique to the consumer getServiceDescription As a registered consumer Metadata + Offered portlets

32 O. Díaz, S. Trujillo & S. Pérez 32 New description parameters to account for the consumer model  Affects getServiceDescription() parameters  WSRP-compliant extension

33 O. Díaz, S. Trujillo & S. Pérez 33 New registration parameters to account for the consumer profile  Affects register() parameters  WSRP-compliant extension

34 O. Díaz, S. Trujillo & S. Pérez 34 A new actor: the domain producer Domain Producer getServiceDescription As an unregistered consumer. Metadata Metadata indicates that registration is required, plus an extension –the consumer model. register With registration data, plus an extension –the consumer profile. Portal regiser (Registers the portal.) Registration Context Unique to the consumer. getServiceDescription As a registered consumer. Metadata + cloned domain portlet

35 O. Díaz, S. Trujillo & S. Pérez 35 The domain producer  From the portal perspective, it behaves as a conventional portlet provider where the portal assumes portlets to be already deployed at the provider  But, if the binding time of a selected feature is “development time” then the portlet is not yet deployed!!!

36 O. Díaz, S. Trujillo & S. Pérez 36 Hence, behind the curtains…  The Domain Producer needs to: Generate the application portlet Deploy the application portlet into the so-called Application Producer Consume the application portlet through a locally deployed “domain portlet” that behaves as a proxy to the application portlet Portal Server HTTPWSRP Domain Producer WSRP Domain Portlet PL Factory Application Producer WSRP P1 WSRP P2P3 P4 Domain Portlet consume

37 O. Díaz, S. Trujillo & S. Pérez 37 Behind the curtains… Domain Producer getServiceDescription As an unregistered consumer. Metadata Metadata indicates that registration is required, plus an extension –the consumer model. register With registration data, plus an extension –the consumer profile. creates the portlet Portlet handle Portal PL Factory API Application Producer java:createPortlet the consumer profile. ant:stop deploys the portlet ant:start clonePortlet (Clones domain portlet, which is a proxy portlet) setPortletProperties (Updates the wsrp_portlet_handle preference with the returned portlet handle.) register (Registers the portal.) Registration Context Unique to the consumer. getServiceDescription As a registered consumer. Metadata + cloned domain portlet Handle cache

38 O. Díaz, S. Trujillo & S. Pérez 38 To recap …  Setting: portlets as enablers of SOA at the front-end  Problem statement: Portlets are coarse-grained components Reuse requires portlets to be engineered for variability Current parameterization approaches are not enough

39 O. Díaz, S. Trujillo & S. Pérez 39 Contributions  An SPL approach is presented WSRP extensions required to accommodate the consumer profile A new actor, the Domain Producer is introduced Generative SPL techniques required  A prove-of-concept sample case has been developed with WSRP4J

40 O. Díaz, S. Trujillo & S. Pérez 40 © Yukon valley by Marc Shandro Oscar Díaz oscar.diaz@ehu.es Salvador Trujillo struji@ehu.es Sandy Pérez sandy-perez@ikasle.ehu.es http://www.onekin.org © Yukon Valley by Marc Shandro Thanks for your attention!!


Download ppt "Turning Portlets into Services: The Consumer Profile Oscar Díaz, Salvador Trujillo, Sandy Pérez ONEKIN Research group University of the Basque Country."

Similar presentations


Ads by Google