MuleSoft.U – Anypoint Trial Account

Hi all,

It has been a while since my last post, I wanted to write this one because I keep getting a lot of questions about it and I hope this can help you to sort the problem out, in summary make sure you use the same e-mail for both accounts:

Step to verify before contacting MuleSoft:

  1. First, check if your Anypoint Platform trial account email address matches the email address you used to register for the MuleSoft.U class.
    1. If you used the SAME email address to create your Anypoint Platform trial account and to register for the MuleSoft.U class, your latest Anypoint Platform trial account will be automatically extended.
    2. If you used a DIFFERENT email address to create your Anypoint Platform trial account than you did to register for the MuleSoft.U class, you must change the email associated with your latest Anypoint Platform trial account. After changing the email address, your account should be automatically extended within 8 hours.

To check and/or change your Anypoint Platform account email address:

  1. Log in to http://anypoint.mulesoft.com.
  2. Click your initials in the upper-right corner of the page.
  3. In the drop-down menu that appears, select Profile.
  4. Locate the email associated with the account on the Profile page.
  5. If the email address is different than the one that this email was sent to, change it.

 

  1.  Second, if your Anypoint Platform trial still hasn’t been extended/certain features are missing and your Anypoint Platform trial account and MuleSoft.U class registration emails match, please follow follow the workaround detailed below to continue with your course:
  1. Create a new Anypoint Platform trial account.
  2. For CloudHub applications, download the ZIP archives and deploy them into your new Anypoint Platform trial account.
  3. For APIs, export each version of your APIs and import them into your new Anypoint Platform trial account.
  4. For detailed steps, see this forum post.

 

Advertisements

MuleSoft – We’re hiring!!!

MuleSoft has been awarded a best place to work time and time again

https://www.mulesoft.com

MuleSoft is hiring across product and engineering, looking for highly technical people who love a challenge. If you or anyone you know is looking for a Software Engineer (Sr. and Principal), DevOps, or Director of Engineering role, let me know!

IT_background-01_2880 x1800

 

 

 

MuleSoft Useful Resources

It has been a while since my last post, since I joined MuleSoft I’ve been challenging them in terms of their documentation and enablement programs, the result: Great!

You can easily find that the company is not only about selling you a solution or having a great product, it really focus on Delivery, if you ask anyone who knows me, they will confirm this about me, Delivery is a priority to me.

I leave you some resources to help you ramp up, I recommend you to suscribe to the first 2 they are free:

  1. MuleSoft Training (https://training.mulesoft.com)
    1. Free Training (https://training.mulesoft.com/category/mulesoftu)
      1. YES!! FREE by MuleSoft
      2. BTW, you’ll get a voucher so you can take a Certification.
  2. MuleSoft Champions Program (http://champions.mulesoft.com/)
    1. This is an enablement program that helps you grow your skills through challenges. You earn rewards (points) after each challenge and you can compare your progress with other participants of the program. Amazing! 2016-08-03_1038
  3. MuleSoft Blog (http://blogs.mulesoft.com/dev/)
    1. Blog written by MuleSoft experts, you can find about anything here. Great for developers and architects.
  4. Others:
    1. DataWeave Examples (Mule v.3.8)
      * https://docs.mulesoft.com/mule-user-guide/v/3.8/dataweave-examples

    2. RAML

      * RAML Basic Tutorial 

      http://raml.org/developers/raml-100-tutorial

       * RAML Advanced Tutorial (Recommended)
      http://raml.org/developers/raml-200-tutorial

    3. Mule Expression Language (MEL)

        * MEL Reference (Highly recommended)
      https://docs.mulesoft.com/mule-user-guide/v/3.8/mule-expression-language-reference

        *  MEL Tips
      https://docs.mulesoft.com/mule-user-guide/v/3.8/mule-expression-language-tips

        *  MEL Examples
      https://docs.mulesoft.com/mule-user-guide/v/3.8/mule-expression-language-examples

    4. Batch

      * Main Doc (Recommended)
      https://docs.mulesoft.com/mule-user-guide/v/3.8/batch-processing

      * MuleSoft Blog Search on Batch
      http://blogs.mulesoft.com/?s=batch

    5. Update Sites

      https://docs.mulesoft.com/mule-user-guide/v/3.8/studio-update-sites

MuleSoft – Anypoint Platform – API-led Connectivity

API Led Connectivity

I need to introduce this concept in order to jump to the technical part. Lets start with Bimodal IT:

  1. IT needs to be stable, mature and secure, we can see this as a traditional IT model, in here you run your Enterprise Applications with your traditional vendors.
  2. IT needs to be Agile in order to keep up with the business and current IT demands (New interfaces, integrations, partnerships, devices, etc.)

For more information please have a look to this document:
API-led Connectivity

In other words, the market is changing at a faster speed than before and IT needs to be agile in order to help the business to be align with this demand, but they also need IT to keep things stable. Does this sound familiar?

We also find these two common scenarios:

  • Central IT controls everything and its goal is to provide and support IT solutions to the rest of the company, this commonly leads to frustration and a lot of pressure for IT and the business generating an anti-agile pattern.
  • Central IT tries to control everything but the rest of the company departments have their own budget for IT solutions, this in paper makes the company “Agile” but not standard, generating in the long run an anti-agile pattern.

Consequences:

Before we had a problem where things were not Digital so we had no data and companies had to buy specialized systems (HR, Finance, ERPs, CRMs, Portals,etc.), but now we have lots of IT systems, data, transactions, etc.

  • How do I get them talking together?
  • How to I apply governance?
  • Should I let people query my data?
  • How should I handled my security?

How did companies solve this?

  • Point to Point: Applications talking to each other with a customized and personalized solution.
    • Main PRO: Faster for a single interface (Web App, Mobile, SaaS, etc.)
    • Main CON: Only works for a specific interface (Not reusable)
  • SOA: Applications talking to each other through services in a standard format.
    • Main PRO: Canonical Data model, orchestration and service decoupling.
    • Main CON: Time to Market.

How are we solving this issue?

  1. Expose and open internal systems through APIs
    1. Composable Enterprise
  2. Enabling different Lines of Business
    1. Divide and Conquer
  3. Let the front-line drive based on the consumer needs.
    1. The business shouldn’t be driven by IT but it should be responsive to the market needs.

API: Application Programming Interface

“Is a set of routines, protocols, and tools for building software and applications. A good API makes it easier to develop a program by providing all the building blocks, which are then put together by the programmer.”

All of this leads us to a 3 layer model or architecture. Some time ago I heard this analogy that I would like to share with you:

Use Case:

  1. House owner calls an emergency number and gives the following information “My house is on fire I live in {Address}”.
  2. The operator calls the police and provides this information ” A house in this Address is on fire”
  3. The operator calls the fire department and provides the same information ” A house in this Address is on fire” and it does the same to the local hospital.
  4. The police operator triggers a code 027282728 and sends police elements to the address provided.
  5. The fire department triggers a code ab12334 and sends a fire truck to the address.

I believe this is how the New Enterprise should behave:

  1. Consumer only interacting with what they need and that can improve its experience. (UX Layer)
  2. Line of business defining and managing the services exposed.
    (Process Layer)
  3. Central IT and Middleware specialist opening the data to the rest of the layers through APIs.
    (System Layer)

This whole concept fits perfect in MuleSoft as it’s not only a concept that they drive is also a concept they can deliver through the Anypoint Platform that I’ll be covering in following posts.

2016-02-04_2332

 

Oracle WebCenter Portal – Dynamic Page Styles

Ok so… Moving to MuleSoft doesn’t mean I’ll stop writing about Oracle, at least not for now.

This post should help some of you that still have nightmares when you hear the word Page Style in WebCenter Portal.

The problem?

They are not difficult to build, as they can be considered like “Templates” but once they get assigned to a Page, if using a common approach, you can’t change modify a Page Style and reflect the change to an existing page, unless you RECREATE the page.

THIS IS NOT COMPLETELY TRUE

Solution

Build dynamic Page Styles, one of the most easiest ways of doing this is using “Declarative Components“.

 

If you want to know more about Declarative Components please have a look here:

v. 11.1.1.9

https://docs.oracle.com/middleware/11119/adf/tag-reference-faces/tagdoc/af_declarativeComponent.html

I’ll describe this solution for both, WebCenter Portal Framework and WebCenter Portal.

WebCenter Portal Framework

  1. Create your portal Application
  2. Create a Declarative Component
  3. Create a Page Style
  4. Reference the Declarative Component in your Page Style
  5. Create a Page based on the Page Style
  6. Modify the Declarative Component and test.

Panel Splitter

 

2015-11-22_0245

 

Panel Tab

 

delcarativecomponentsPS2015-11-22_0246

 

For now I’m just going to give you an example of how a Declarative Component might look like:

<?xml version='1.0' encoding='UTF-8'?>
<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.1" xmlns:f="http://java.sun.com/jsf/core" xmlns:af="http://xmlns.oracle.com/adf/faces/rich">
  <af:componentDef var="attrs" componentVar="component">
    <af:panelTabbed position="above" id="dc_pt1" styleClass="AFStretchWidth" dimensionsFrom="auto">
      <af:showDetailItem id="Left" text="Tab Label 1" disclosed="true">
        <af:panelGroupLayout id="dc_pgl2">
          <af:facetRef facetName="facetLeft"/>
        </af:panelGroupLayout>
      </af:showDetailItem>
      <af:showDetailItem id="Center" text="Tab Label 2">
        <af:panelGroupLayout layout="scroll" xmlns:af="http://xmlns.oracle.com/adf/faces/rich" id="dc_pgl1">
          <af:facetRef facetName="facetCenter"/>
        </af:panelGroupLayout>
      </af:showDetailItem>
    </af:panelTabbed>
    <!--af:panelSplitter id="dc_ps1" styleClass="AFStretchWidth">
      <f:facet name="first"/>
      <f:facet name="second"/>
    </af:panelSplitter-->
    <af:xmlContent>
      <component xmlns="http://xmlns.oracle.com/adf/faces/rich/component">
        <display-name>declarativePageStyle2Layouts</display-name>
        <facet>
          <description>Left Facet</description>
          <facet-name>facetLeft</facet-name>
        </facet>
        <facet>
          <description>Center Facet</description>
          <facet-name>facetCenter</facet-name>
        </facet>
        <facet>
          <description>Right Facet</description>
          <facet-name>facetRight</facet-name>
        </facet>
        <component-extension>
          <component-tag-namespace>org.mauro.webcenter.components</component-tag-namespace>
          <component-taglib-uri>/pageStyleLib</component-taglib-uri>
        </component-extension>
      </component>
    </af:xmlContent>
  </af:componentDef>
</jsp:root>

Let’s check the important parts:

  • Facets are important as there I will hold Composer components.
  • In the code shown, I have commented a pannelSplitter and I display a pannelTab instead.
    • The example is mainly to show you that the Page Style can be modified from a pannelSplitter to a pannelTab without recreating the whole page.

Now the Page Style:


<?xml version='1.0' encoding='UTF-8'?>
<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.1" xmlns:f="http://java.sun.com/jsf/core" xmlns:h="http://java.sun.com/jsf/html" xmlns:af="http://xmlns.oracle.com/adf/faces/rich" xmlns:cust="http://xmlns.oracle.com/adf/faces/customizable" xmlns:pe="http://xmlns.oracle.com/adf/pageeditor">
  <jsp:directive.page contentType="text/html;charset=UTF-8"/>
  <f:view>
    <af:document id="d1">
      <af:form id="f1">
        <af:panelGroupLayout id="pgl1" styleClass="AFStretchWidth" layout="vertical">
          <pe:pageCustomizable id="hm_pgc1" inlineStyle="width:100%;">
            <cust:panelCustomizable id="hm_pnc1" layout="scroll">
              <af:panelGroupLayout id="panelGroupLayout1" layout="vertical" styleClass="AFStretchWidth">
                <af:declarativeComponent id="decps" viewId="/components/psLayoutComponent.jsff">
                  <f:facet name="facetLeft">
                    <cust:panelCustomizable id="a_pnc1" layout="scroll" showTabAction="true">
                      <af:outputText value="I'm Facet One" id="ot1"/>
                    </cust:panelCustomizable>
                  </f:facet>
                  <f:facet name="facetCenter">
                    <cust:panelCustomizable id="a_pnc2" layout="scroll" showTabAction="true">
                      <af:outputText value="I'm Facet Two" id="ot2"/>
                      <af:calendar id="c1"/>
                    </cust:panelCustomizable>
                  </f:facet>
                </af:declarativeComponent>
              </af:panelGroupLayout>
            </cust:panelCustomizable>
            <f:facet name="editor">
              <pe:pageEditorPanel id="pep1"/>
            </f:facet>
          </pe:pageCustomizable>
        </af:panelGroupLayout>
      </af:form>
    </af:document>
  </f:view>
</jsp:root>

What the Page Style does, is to reference the Declarative Component and inside the facets it includes the panelCustomizable component for Composer.

Create the Portal Resource for the Page Style and run your application, create a new page using the new Page Style, add something in run time using Composer, then just change the Declarative Component and test it again, your modification should be directly reflected to your page without rebuilding the whole thing, IMPORTANT, remember to leave the reference to the facets.

What’s different for WebCenter Portal?

Just how you publish this change:

  1. You can use a shared library
  2. You can use wlst (importMetadata)

This will import any change done to the Declarative Component.

If you want more information regarding importMetadata:

WebCenter Specific

http://docs.oracle.com/cd/E28280_01/webcenter.1111/e12405/wcadm_app_config_files.htm#WCADM5018

Generic

http://docs.oracle.com/cd/E28271_01/web.1111/e13813/custom_mds.htm#CHDHDCAI

Docker – Apache and Oracle mod_wl (Apache HTTP Server Plug-In)

Maybe a lot of you have already heard and maybe even mastered Docker. This is my first docker image and I’ll like to share some basic concepts I have learned from it.

I will also appreciate any comment to improve this image.

So, what is Docker?

Wikipedia: “Docker is an open-source project that automates the deployment of applications inside software containers, by providing an additional layer of abstraction and automation of operating-system-level virtualization on Linux”

I see it like a nice way to automate tasks (avoid repeating the same task over and over) and making a container of it, allowing me to use it “where ever” I want.

Basic Docker Operations:

Build

docker build -t [username]/[imagename] [Dockerfile path]

docker build  -t   mfh/webtier  /home/docker/webtier/.

This will use a Dockerfile stored in “/home/docker/webtier/” to create an image called “mfh/WebTier”.

Run

docker run [arguments] [image]

docker run -p 80:80 mfh/webtier

docker run -it mfh/webtier /bin/bash

docker run -d -p 80:80 mfh/webtier

ps

docker ps

This will display the docker containers currently running and its name and id.

Exec

docker exec [running container id]

docker exec -it c357930de48c /bin/bash

This will allow you to look into a running container.

My Scenario:

We constantly have clients using a front end server to receive all the incoming requests and then send it to the final destination. In terms of Oracle this will mean, Apache Web Server with mod_wl.so redirecting to WebLogic ( More than half of the clients use OHS).

Hands On!

  1. Create a Dockerfile
  2. Download and / or create external files.
  3. Build Dockerfile
  4. Run the Docker container

Dockerfile

This file was based on appcontainers/apache.


FROM centos:centos7

MAINTAINER mauro.flores.g@gmail.com

ENV APP_NAME apache.local
ENV APACHE_LOG_DIR /var/log/httpd

# Clean, Update, and Install... then clear non English local data.
RUN yum clean all && \
yum -y update && \

# Install required packages
yum -y install httpd24.x86_64 mod_rewrite mod_ssl mod_env && \

# Remove yum cache this bad boy can be 150MBish
yum clean all && \
rm -fr /var/cache/*

# Remove locales other than english
RUN for x in `ls /usr/share/locale | grep -v -i en | grep -v -i local`;do rm -fr /usr/share/locale/$x; done && \
for x in `ls /usr/share/i18n/locales/ | grep -v en_`; do rm -fr /usr/share/i18n/locales/$x; done && \
rm -fr ca* den men wen zen && \
cd /usr/lib/locale && \
localedef --list-archive | grep -v -i ^en | xargs localedef --delete-from-archive && \
mv -f locale-archive locale-archive.tmpl && \
build-locale-archive

ADD apache-config.conf /etc/httpd/conf.d/

# Copy site
CMD ["mkdir", "/var/www/html"]
ADD site /var/www/html/

# Expose ports
EXPOSE 80
EXPOSE 443

#Copy Apache HTTP Server Plug-In
COPY ./mod_wl/lib/*.so /usr/lib64/httpd/modules/
COPY mod_wl.conf /etc/httpd/conf.d/
COPY mod_wl.load.conf /etc/httpd/conf.modules.d/

#Create Volume
VOLUME ["/var/www/html", "/var/log/httpd"]

# Start apache.
CMD /usr/sbin/httpd -D FOREGROUND

To run the container:

docker run -d -p 80:80 -v ~/docker/webtier/html:/var/ww/html webtier

More information regarding Docker:

https://docs.docker.com/

WebCenter Patch 11.1.1.9

I have been out for some time, but wanted to share the new WebCenter Release, I’ll create another post to provide a personal feedback.
JDeveloper 11.1.1.9
 
Download:
 
WebCenter Portal 11.1.1.9
 
Download:
 
What’s New:
 
WebCenter Content 11.1.1.9
 
Download:

http://www.oracle.com/technetwork/middleware/webcenter/content/downloads/index.html

What’s New:

Hands On Time! – WebCenter Portal Tools part 1

When it comes to Portal I’m not a big fan of using Portlets, don’t get me wrong they are great but they can get messy if you’re not careful enough, whenever I can I prefer to use ADF TaskFlows….. yes yes I know they are made for different things and Yannick Ongena has a good article about it.  But the portlets that WebCenter bundles are really useful if you know how to use them. Let’s start with “Portal Tools”:

Web Clipping Producer

Is a publishing portlet that enables you to integrate any web application with applications built using Oracle WebCenter.

Requirements:

  1. JDeveloper with WebCenter Extension. I’m using (11.1.1.8)
  2. Demo WebCenter Portal Framework Application

You don’t have to install a full WebCenter environment to work with this, we’ll make use of the one integrated in JDeveloper: 1. Start your integrated WebLogic Server 2014-03-02_2356 2. Deploy PortalTools Portlet Producer 2014-03-02_2153 2014-03-03_0228

3. Create a new Oracle PDK-Java Producer connection:

2014-03-03_0237

2014-03-03_0238 2014-03-03_0241 2014-03-03_0242

2014-03-03_0243

4. Drag and Drop the portlet to your page. In my case I’m using home.jspx.
NOTE: You can use the portlet as many times as you want inside the page.

2014-03-03_0248

5. Run your Portal,  Login and go to your page:

2014-03-03_0250

6. Edit the Portlet:

2014-03-03_0250_001

7. Now the interesting part, select the site where you would like to take your “Mash-ups” from, in this example I’m using Oracle – WebCenter : http://www.oracle.com/technetwork/middleware/webcenter/suite/overview/index.html

2014-03-04_0019

2014-03-04_00182014-03-04_0019_0012014-03-04_0019_0022014-03-04_00212014-03-04_00222014-03-04_0022_001

8. Repeat this procedure for all the portlets:

2014-03-04_0028

NOTE: You can add more WebClipping Portlets in run time with Composer.

SOA explained with London’s Transport

Recently, I had the opportunity to give an internal training to our Non technical team about Middleware, of course the title, “Middleware for Humans” had to be used. And as you know an important part of Middleware is SOA. Our office is based in London. so being inspired by John Bronswick, I looked for an analogy in how to explain SOA in simple words, this is Oracle’s Description for it:

Oracle SOA Suite: a complete set of service infrastructure components for designing, deploying, and managing composite applications. Oracle SOA Suite enables services to be created, managed, and orchestrated into composite applications and business processes. Composites enable you to easily assemble multiple technology components into one SOA composite application.

2014-03-02_0134

Commuting case in London

There are multiple services working in London for commuters:

· Underground

· Train

· Bus

· DLR

It’s common to have to use more than one of them during the day. And they are owned by different private companies.

So, what does all these has to do with SOA? Multiple services own by multiple provider with the need to be consumed by the same client. What would happen if a new provider joins? or if they decide to upgrade a service? Well, with SOA we can solve this with the Service Bus:

A)
“A style of integration architecture that allows communication via a common communication bus that consists of a variety of point-to-point connections between providers and users of services.”

“An infrastructure that a company uses for integrating services in the application landscape.”

“An architecture pattern that enables interoperability between heterogeneous environments, using service orientation.”

How London solves this issue:

 OYSTER CARD

B)
“Oyster card to travel on the Tube, London Overground, DLR, bus, tram and most National Rail stations in London. You can put Travelcards, bus and tram season tickets and pay as you go credit on to the card.“

So, London commuters just have to register for one service only no matter what version or service they are using, if they are registered and they need to change for example their last name, they just need to do it once.

A)  http://www.oracle.com/technetwork/articles/soa/ind-soa-esb-1967705.html
B)  
http://www.tfl.gov.uk/tickets/27298.aspx

Create a free website or blog at WordPress.com.

Up ↑

%d bloggers like this: