Friday, April 17, 2015

What can API Management do for my business?

Introduction
Since the early days of Internet companies have been sharing information using a variety of channels, such as websites, Apps and email. In order to reduce cost and increase efficiency, companies needed to move on to a Service Oriented Architecture (SOA), which provides the right information at the right time to the customer. Most modern companies already use this kind of IT architecture within their organization and with suppliers. In order to go to the next level of competitiveness you need data and functional exposure from all your key systems in a secured way.
Oracle API Management is used to manage this exposure. It will create one portal with API’s from which you will be able to reach all necessary information from all of your systems, again in a secured way. This greatly reduces the complexity of your IT architecture and allows you to oversee and better integrate with internal and external systems.
The Oracle API manager is part of the Oracle API solution just as the Oracle API Gateway and the Oracle Service Bus. The gateway is to secure the API and the service bus to create the different services. The full Oracle API solution will be discussed in a later blog.


Business advantages
Oracle API Management allows you to manage and secure your API’s, but what does this really mean for your business? The main three business advantages of Oracle API Management are listed and explained below:
·       Increased integration between internal systems
·       Supply chain integration with customers and suppliers
·       Providing digital exposure opportunities
The first point, increased integration of internal systems focuses on the improved administration of the internal landscape. This is reached by extracting data from one system and providing it to one another. As API’s can be created for nearly all systems this data can be easily exposed internally to other systems. This way systems can easily enrich each other without any copy-pasting between systems. This will greatly reduce the time spent on administrative tasks.
The main reason why people should use the Oracle API manager is to
 integrate with suppliers and customers. When you are fully integrated with your suppliers you will be able to automate large parts of the supplier related processes. This obviously goes both ways. You can provide your supplier the information directly into his systems and you will receive the information back in a way you can import it into your systems automatically. This reduces cost on both sides and will create a strategic advantage over all your competitors who don’t have an automated supply chain. This way you can increase efficiency; reduce cost and a reach higher process quality. As the API’s Oracle API Management provides can be generic in setup, they can be used for multiple suppliers so you don’t need a different API for every customer. On the other hand if you do need different information for different suppliers the API Management can be used tomanage, monitor and secure these API’s.






















Last but certainly not least Oracle API Management can provide business information to parties unknown yet. This may sound quite strange but by providing API’s to the world can give you lots of exposure. The app market is booming and IT startups are more common than ever. Providing open data you create to these companies might just get you lots of customers. Restaurant chains could for example provide an API that displays location and pricing information or they could even accept orders using API’s. This can create a significant advantage over all other restaurants. In above image is shown how many API calls per day big companies receive. This unmistakably indicates how important API’s can be for a company.

Functionality



Hopefully it’s clear by now that Oracle API Management can really change the way you do business. In this paragraph I will explain the key features that Oracle API Management provides you with. The main three key features are:
·       Easy API Management
·       Security (API gateway)
·       API Catalog
The main functionality Oracle API Management provides you is, of course, the creation, editing and
 managing of API’s. This is done using an easy to understand interface that empowers developers to create business value for your organization. 

Security is of course also very important when exposing services to external parties. The security of Oracle API Management is managed by the Oracle API Gateway which guarantees that API’s can’t be used in ways they aren’t meant to. Oracle API Gateway allows you to manage transport-level security, message-level security, SAML, fine-grained authentication, Identity Management and more.


Another great functionality is the
 API catalog which provides you with enterprise visibility of all API’s. This will empower your business to spot opportunities to integrate systems and will allow developers to easy integrate your systems. The API catalog also provides you the ability to track, provide feedback and do automated introspection of API’s.



Conclusion

Businesses and technology evolve continuously and Oracle API management can be that IT thing that provides your business a strategic advantage over your competitors. This increased competitiveness is reached by increasing efficiency, better alignment with suppliers and customers and increased digital exposure. In our next blog we will discuss the full Oracle API Solution and how the Oracle API Manager, Oracle API Gateway and Oracle Service Bus work together.

Friday, October 10, 2014

Apex vs Mendix

Comparison Oracle Application Express (APEX) vs Mendix 
Oracle Application Express (APEX) and Mendix are both sold as fast development tools to create webapplications. But what are the differences between them and when should we use which tool. Personally I have more experience with Mendix, but after some reading and a few demos I’m able to make the comparison. As I think the most important aspects are capabilities, architecture, security, development speed and pricing I will compare the two tools on these aspects in the following paragraphs and will finish with an overall conclusion. 

Capabilities 
Mendix has its own local installed model driven development environment in which you can create the database, webpages and logical flows using drag-and-drop functionality with a visual representation of what you created. As you can create logical flows called “microflows” in Mendix you are quite flexible in creating the required logic without any line of code. This makes the slogan “no code, just glory” quite a true statement. APEX is web-based and is built on-top-of an existing Oracle database. As it’s web-based you create the application using forms in which you select the appropriate parts you want to add. APEX applications are based on Items, Regions, Dynamic Actions and Page Processes. The logic can also be added by selecting the specific actions that can be done in the application. And then by using a menu you can add functionality to the actions. Most commonly used functionality is building reports and forms. As I have heard from APEX experts a lot out of the box functionality can be used. Creating specific customized functionality can be done in PL/SQL, the Oracle Database programming
language. The capabilities of both tools as shown in the following table are quite the same. 

 APEXMendix
DevelopmentWeb based (forms)Local graphical modeling environment
 
CodePL/SQL, JavaScriptJava, JavaScript
 
Creating web-pagesXX
Web-servicesXX
MultichannelXX
InternationalizationXX
CloudXX
ReportingXX
Bug fixing toolsXX
Collaboration environmentXX
Graphical logical Flows  X
Graphical Database modeler  X
Module Store  X
 
Both APEX and Mendix are able to create multichannel applications, handle internationalization and reporting. They also both support bug fixing, but the bug fixing in Mendix is really optimized as you can walk through the microflows and see what’s happening at real-time in your modeling environment. In APEX you can test your PL/SQL code and get error messages, but this is less advanced then in Mendix. The collaboration environment of APEX allows you to create a to-do list and to keep track of bug fixing. This is also possible in the Mendix collaboration environment which is Facebook-like and supports the scrum/agile methodology. The bug tracking in Mendix is however less advanced. Overall I would say both tools have a lot of the same capabilities, but Mendix has an advantage because of the built-in database modeler and the use of graphical microflows. Early images of APEX 5 which is probably released Q1 2014, show however that APEX is also making changes to create a more graphical environment to create webpages.

Architecture 
The APEX architecture as shown in the following image is quite small and understandable. The APEX engine is part of the Oracle database and communicates with the user(web browser) using an Apache server and PL/SQL. APEX is mostly build on top of a database with other Oracle applications whose data is easily approachable. Communication with other applications can be done by using webservices.


As APEX is part of the Oracle Database it is as scalable as the Oracle Database. This is for example proven at Northgate Revenues and benefits where 10.000 end-users daily use an APEX application with around 1500 forms with sub second response times. The Mendix architecture is based on creating a model in the development environment which is executed by the Mendix engine which is based on java. This has an advantage when upgrading to a newer version. This can be done mostly automatically and takes only a week at most. As shown
below Mendix can be connected with various systems. Modules that extend the capabilities of Mendix can be imported from an App Store. The Mendix architecture of the new version 5 is focused on making the application module based and thus more scalable. A disadvantage of this architecture is that updates on the application always require a full deployment. A difference between Mendix and APEX is that Mendix is database independent where APEX is Oracle database only.
  
Security 
Because Oracle APEX resides within the Oracle Database and can easily integrate with authentication schemes (such as SSO, LDAP, etc.) you can build secure applications that can scale to meet your largest user communities. Mendix has its own security which can be configured in the modeling environment. It is also possible to connect the use the app user roles to existing user role repositories like LDAP, Kerberos and NTLM. Both Mendix and APEX can use entity access and can export parts of the application including the security role settings. Maybe if you dig deeper into the differences between APEX and Mendix security you will find out that one of the two is better. But for now I will just keep to the fact that both tools have integrated security very well.

Development speed 
Both tools provide an easy developing environment where you don’t need to write code for everything you want to display in your application. As APEX is web-based developing is mostly adding functionality by clicking through forms and selecting the right options. Developing in Mendix mainly consists of creating your database, pages and microflows. This is done by dragging and dropping the right elements into the environment and providing the right information in menu’s. Deploying in both tools is quite easy as deploying Mendix is integrated in the tool and deploying APEX is done by running a script on the database. As the development in both environments is quite different I cannot say which tools develops faster overall as it is depending on what you need to build.  Mendix supports more complicated program logic, without the direct need of using code. As the database is part of your model refactoring is also faster in Mendix. The debugging in Mendix also seems to be more advanced which will surely save a lot of time in the long run. APEX however can be built on top of an existing database which will speed up the project drastically when this needs to be done. Overall when building large complex applications Mendix will be the faster option as it’s more flexible. In order to find out which tool is faster when developing applications we will compare both tools on function points. Using Mendix an average of 2.6 hour per function point is reached while development in APEX takes 3.5 hour per function point. Both values are quite low comparing with other methods/technologies like java for example which is between 9 and 12 hours per
function point. Both APEX and Mendix averages aren’t based on calculations from a lot of projects, but experts of both tools confirm these values.

Pricing 
Everything so far might give you the idea that both tools are nearly perfect for everything. But the pricing might just be the one thing you’ve overlooked as both tools can only be set up for free, but aren’t really cheap when used in production. When you want to deploy Mendix you need to pay for the license which will cost you around  50K per year. APEX comes free with the Oracle Database 11g which will also cost you around 50k per year. These both prices are indicative and are more the starting point for discussing about the license cost then the real price as this is depending on a lot of factors. When you already have an Oracle Database 11g license APEX doesn’t cost you anything extra in license cost, which makes it interesting. APEX can also be run on Oracle Database 11g Express Edition(XE). This is a free starter version of Oracle DB with the limitations of 11gb storage, 1gb RAM and 1 CPU. The APEX & XE combination is also free even if you don’t have the full Oracle Database 11g license. This will limit you to a smaller application, but if that’s what you need it is a real good option. 

Overall conclusion 
The capabilities of both tools are quite the same, but Mendix provides a little more flexibility and graphical user interfaces. Where Mendix can be seen as a separate application which can extend other applications using web-services, APEX is traditionally built on top of an existing Oracle database. It is of course possible to create a new database for the APEX application, but this can’t be done in the APEX development environment. The development speed of both applications is really fast and easily 3 times faster than java development, but Mendix is a bit faster. In order of pricing both APEX and Mendix cost about the same. APEX however doesn’t cost anything extra when you already have an Oracle Database 11g license and has the option to run small applications totally free of license costs. The architecture of both is very different, but as APEX is build on a Oracle database it is more scalable. The security of both applications is no issue as both tools have integrated security very well. This leads to the final conclusion: APEX and Mendix are very comparable and the decision between both should be based on specific requirements. Modeling in Mendix is a bit faster because of the graphical display and the absence of code, where APEX is more scalable. However with the new versions of Mendix and APEX both tools grow more together as Mendix will become more scalable and APEX more graphical. Of course when you already have an Oracle database license APEX has the advantage because of the cost savings.