Thursday 17 December 2015

Introduction to ArchiMate

"Enterprise architecture is the organizing logic for business processes and IT infrastructure reflecting the integration and standardization requirements of the company's operating model. The operating model is the desired state of business process integration and business process standardization for delivering goods and services to customers." - MIT CISR




Archimate is an architecture standard adopted by big companies such as Banque de France, European Central Bank, European System of Central Banks... It is an open enterprise architecture modeling language that visualizes, describes and analyses architecture within and across business domains. It is a technical standard recognized by the TOGAF (The Open Group Architecture Framework). It is different from other languages (BPMN and UML) due to the different modelling scope. While the UML is used for modeling software products and BPMN is used for business process modeling, ArchiMate is used for defining relationships between concepts in different architecture domains.

ArchiMate covers three layers:



  1. Business Layer - includes business processes, functions, services and events. This layer shows the business process of a project/system and the services offered by those processes.
  2. Application Layer - includes software applications, services it offers and functions it performs. This layer shows how the application layer supports the business layer, how applications interact between each other (interfaces) and how the application behaves.
  3. Technology Layer - includes hardware and communications at infrastructure level. This layer describes the infrastructure and how it supports the application layer.


To segregate different areas of architecture, ArchiMate utilizes "view" a part of an architecture description that addresses a set of related concerns and is addressed to a set of stakeholders. This is done through "viewpoints".

Some of the most useful viewpoints are:
  1. Organisation viewpoint - shows the actors and roles involved and how they are organised.
  2. Business process cooperation viewpoint - shows how different business processes interact with each other
  3. Application behaviour viewpoint - shows how the application behaves (functions it performs and services it provides)
  4. Application cooperation viewpoint - shows how the application interacts with other applications, which services it uses from other applications and which services it provides to other applications (interfaces)
  5. Application usage viewpoint - shows how application (through services it provides) supports the business process.
  6. Infrastructure viewpoint - shows the infrastructure
  7. Infrastructure usage - shows how the infrastructure supports the application.
  8. Information structure - shows the static view of business objects and data objects used in a business process.

These viewpoints are useful for creating impact map, capability map, landscape, criticality chain, system dependency map, etc. 


Example:


Here is a simple example of the ArchiMate modeling. 

We start off with an event that occurs every 25th of December. It triggers a business process "Check naughty/nice list" which accesses "List of naughty/nice kids" and is performed by Santa. Santa is a business actor that is associated with the business process and the list is a business object that is accessed by the business process. Finally this business process triggers another business process "Deliver presents" which accesses business object "Presents" and is associated with a business actor "Santa".


If you wish to try out modelling in ArchiMate  you can you the free tool called Archi. If you wish to learn more about ArchiMate standards, you can visit TOGAF ArchiMate website.


Monday 26 January 2015

Raspberry Pi Introduction and Setup

This post explains what is Raspberry Pi (RPi) and how to set it up.

Raspberry Pi is a low-cost, very small, single-board computer that usually runs one of the several different Linux-based operating systems (it is not strong enough to run Windows, but don't worry - it's still easy to control!). The primary idea behind this small computer is that everyone could learn computing and programming on an affordable, small computer.


MODELS

There are several different versions of Raspberry Pi:

Model A (replaced by model A+), Model B (replaced by model B+), Model A+ and Model B+.
Models A and B were replaced by newer models A+ and B+ in 2014, so I will briefly describe differences between them.


Model A+ and B+ side by side. Photo credit: Adafruit

Specification\Model A+ B+
Dimension 65mm x 56mm / 2.5" x 2.25" 56mm x 85mm  / 2.2" x 3.4"
Weight 23 g 42 g
Processor ARM 11, 700 MHz low power ARM 11, 700 MHz low power
USB ports 1 x 2.0 USB 4 x 2.0 USB
Memory (RAM) 256 MB 512 MB
Ethernet port No Yes
Price $20 / ~€20 $35 / ~€35

Other than above mentioned specifications, they both have 40 GPIO (General Purpose Input Output) pins, a HDMI port, a DSI display connector, a camera connector, GPU (Graphic Processing Unit) and a micro SD card slot. Both models are powered by micro USB - just like the ones most mobile phones use.

My recommendation is paying few extra € / $ (or whichever monetary system you use) and get model B+ (unless you really need slightly lower weight and power consumption). With more USB ports you will avoid buying extra USB hubs (on model A+ no ethernet port means you will have to use USB Wi-Fi, thus you won't have a free USB port for keyboard/mouse) and you will get more RAM.


WHAT DO YOU NEED?

Since I have B+ model and will make tutorials based on it, this section is based on what you need for this model. Please note that RASPBERRY PI DOES NOT INCLUDE ANY EXTRA EQUIPMENT!

1 x Raspberry Pi B+ model
1 x micro SD card, UHS 1 or class 10, with 32 GB (can be less)
1 x Micro USB charger (5V, 1 A)
1 x HDMI cable
1 x keyboard (wireless if possible)
1 x mouse (wireless if possible)
1 x ethernet cable or 1 x USB Wi-Fi module (as small as possible)
1 x clear casing with removable top to access GPIO (optional)
1 x micro SD card reader (if you don't buy micro SD card with pre-installed operating system)

I bought a wireless keyboard + mouse combo with only 1 USB receiver, so that I can have more free USB ports. You can buy a micro SD card with pre-installed OS system, or you can install it on your own (in which case you will need micro SD card reader).


My complete equipment.


SETTING UP

If you are going to install OS yourself, put the micro SD card in your card reader and plug it into your computer. Then, depending on your operating system, follow the instructions for writing an image on a micro SD card.

There are several OS you can choose from:
NOOBS - for absolute beginners
RASPBIAN - based on Debian for standard users
PIDORA - based on Fedora for standard users
OPENELEC / RASPBMC - XBCM media centers
and many more official and unofficial OS....

Since I am using Windows, I installed Win32DiskImager and downloaded Raspbian. After both have downloaded, Just double click on Win32DiskImager, select Raspbian file and drive letter your micro SD card is associated with. Click "write" and after few moments your micro SD card will be ready.

Writing image file on H: (micro SD card location)

Now plug in your micro SD card in Raspberry Pi, connect it via HDMI cable to TV/monitor, connect your keyboard and mouse to it and connect either ethernet cable or WiFi module. After everything is set up, finally connect it via micro USB to power outlet.

Your Raspberry Pi should start booting and it will bring up a blue screen with some options.First select "Expand Filesystem" so that OS can take as much space as it needs. If you wish you can also select "Internationalisation options" where you can setup your keyboard layout, time zone, etc. Finally select "Finish".

Raspbian configuration

Raspberry will then ask you for username and password. Default username is "pi" and password "raspberry" (please note what kind of layout you have, it might be "raspberrz"). This will bring you to terminal - a command line interface.

Now you will want to update your Raspbian to newest version. To do that simply type:
sudo apt-get update (to update the sources of the software) and then
sudo apt-get upgrade (to upgrade everything to the latest version).

After it has finished updating, you can switch to GUI (graphic user interface) by typing:
sudo startx

That's it! Now you can explore pre-installed things and what else you could install on your Raspberry.