Experienced developers - looking for a guidance

Zeze

Lifer
Mar 4, 2011
11,395
1,189
126
Looks like I'm assigned to be a delivery manager now placed inside IT (formerly I was in an ops team for reporting requirements that interacted with IT). I'm lacking technical knowledge and I'm looking for some guidance.

I'm not looking to learn coding any languages, but rather want to learn a 'bird's eye view' of architecture/frameworks/integration, etc. So this is difficult for me to search what kind of book I should be reading as I don't know what they're called. So let's start.

1. What is Mule / Sofea? Googling tells me Mule is some kind of a 'platform' that manages communication across different apps, databases & services that eliminates you from doing point-to-point integration. Is that right? Can someone ELI5 this? So as a developer, you're writing code in a given language, then you deploy it in Mule? Is Mule an actual program or a working space?

2. This question may be fundamentally dumb, but what is a web service? And why is this concept of web service needed? Why don't you write a code that makes it do stuff. Why do you have to have a 'separate' web service that handles thing? Meh, I can probably youtube this. https://www.youtube.com/watch?v=u80uPzhFYvc

3. What's Maven / Jenkins? What does it do?

4. CVS and Git? What do they do? It's difficult for me to find a 'dummy' answer because lots of answers on internet assumes intermediate knowledge.

So the things I mentioned above- what's the encompassing 'topic' that covers these at high level without deep diving into specific coding languages? Are above all called enterprise architecture? Integration? Framework? Or one of them does not belong outside of other?

Point me in the right direction so I can further bone up.

Thanks guys.
 

Cappuccino

Diamond Member
Feb 27, 2013
4,018
726
126
£600 to my PayPal and I will send you my A+ grade ''how to eBook''

edit - I dunno I hope someone will help you out.
 
  • Like
Reactions: Crono

Ken g6

Programming Moderator, Elite Member
Moderator
Dec 11, 1999
16,698
4,659
75
Don't know about 1 or 3, though I've heard of Maven.

A web service is like a web site, designed only to be read and used by a computer.

Git is a good version control system. CVS is a bad, old version control system. Version control is a little hard to explain. It's like multiple copies of backups, but the copies can have been modified by different people, and there's mechanisms to help merge changes.
 

clamum

Lifer
Feb 13, 2003
26,256
406
126
Git and CVS are version control systems. They're different applications/systems that developers check their code into and they're centrally situated. This way each developers don't have to coordinate when working on different projects (generally) and if a developer's computer crashes, the code can be retrieved from the central server. More or less.

Web services are basically websites without user interfaces and that basically just interact with data, either taking it from something or returning it to something. For example, say you have a website that has local classified listings on it (aka Craigslist). There's a database that stores all the data (data for the listings, users, blah blah). Now you want to create a mobile app that has the same data but is tailored to mobile devices. You can create a web service with a bunch of methods for retrieving the listings (returns data), retrieving user info (returns data), adding a new listing (accepts data), updating a listing (accepts data), etc. Now you update your website to call the web service instead of calling the database directly (now the web service hits the database). Then you create your mobile app and the mobile app also calls the web service when it needs to interact with the data. Web services are a way to expose data on the Internet, basically.

I'm a developer but I'm certainly no 3l337 h4xor or genius. Hopefully this helps you some and is not too far off the mark.
 

purbeast0

No Lifer
Sep 13, 2001
53,639
6,522
126
1. No clue.

2. A webservice is basically just an endpoint that you hit that returns some data, and then the consumer does what they want to do with it.

3. Maven and Jenkins are 2 completely different things. Maven is basically a way to build applications and can automatically pull in dependencies based on the configuration files. There is basically a big Maven repo that stores all of the libraries, and you say you want to include one of them, and it will pull it in as well as all of the libraries that one depends on. Jenkins is a continuous integration (CI) tool that will do auto builds, run tests, and can do a lot of other stuff that you can configure it to do via scripts. You basically set up a bunch of tasks on it and it just will continually monitor and run them, if configured to do so. The most common use for Jenkins is that when someone commits a new change, Jenkins will build a new version with those changes in it. Then you can configure it to shoot out emails if it fails, fail the build if tests fail, etc. There is a ton of configuration you can do to it.

4. That is version control. CVS is a dated version control system. Git is pretty much the standard right now and a lot more powerful than CVS and SVN (Subversion), both of which used to be popular. Version control is basically a repo where you make changes to code, then push your changes to the repo, and every other person who is part of that repo can get the changes. You can also go back to the source code at any given point in time and look at any version of it, hence "version control" as the general topic. It helps you manage conflicts too so that if you have multiple users working on the same file, potentially the same line of code, to help resolve it. There is more to it but that is the general idea.

I'm not really sure what you mean by the very last question. Although I don't know what the #1 even is, the other 3 questions are just general aspects of software development that aren't necessary related. Webservices are just a type of software, they aren't necessary for every piece of software. Maven also is not needed for all types of software, it just depends on the technology chosen from the ground up, so I guess in a sense, it is the architectural level. Jenkins is more of a devops type of tool but is very common and useful in the general SDLC (software development life cycle) especially in Agile environments. And version control software is just a very basic tool that anyone in software development will be introduced to at their very first job.
 

KB

Diamond Member
Nov 8, 1999
5,406
389
126
What is Mule / Sofea? Googling tells me Mule is some kind of a 'platform' that manages communication across different apps, databases & services that eliminates you from doing point-to-point integration. Is that right?

I don't use Mule but I have some small experience with a similar tool Microsoft BizTalk. You have the concept correct. It is a piece of middleware that provides a common interface and workflow to all subscribing programs. It is particularly useful for connecting older programs that are written in tools that have limited interface options but need to integrate with each other.
 

Ken g6

Programming Moderator, Elite Member
Moderator
Dec 11, 1999
16,698
4,659
75
Well, I finally looked up SOFEA. To understand it you need to understand the Model-View-Controller (MVC) pattern.

In MVC, the Model is generally a database. The Controller is some system of getters and setters on the database. And a View takes data from the database and makes it presentable to the user.

So, SOFEA, Service Oriented Front End Applications/Architecture, seems to be a case where the Model and Controller are on a server, but the View is JavaScript in a simple template webpage. The JavaScript connects to the Controller through a web service, and basically writes the entire page, and rewrites it when you do something or click a link. That way data transmission is minimal, and transitions are seamless.

I've seen a few systems designed this way recently, but their names escape me right now.
 

mxnerd

Diamond Member
Jul 6, 2007
6,799
1,103
126
All About SOFEA: Service-Oriented Front-End Architecture

https://dzone.com/articles/service-oriented-front-end-architecture-sofea

Looks like it's very similar to Google's Angular 2/4

https://angular.io/

Angular is a front end framework that can be used to develop web/mobile/desktop applications, which uses TypeScript language (a typed Javascript) developed by Google & Microsoft

===

Mule

https://www.mulesoft.com/platform/soa/mule-esb-open-source-esb

https://en.wikipedia.org/wiki/Mule_(software)

StudioScreenshotBeta.png
 
Last edited:

purbeast0

No Lifer
Sep 13, 2001
53,639
6,522
126
LOL ... all these acronyms. SOFEA is what I've been doing the past 4 years apparently.
 

pauldun170

Diamond Member
Sep 26, 2011
9,493
5,708
136
Mule is an enterpise service bus.
Basically, you can think of it as a hub for all of the different systems in your environment to talk to each other.

Lets say you have a service thats pulling bloomberg data
Text files that need to be parsed that come from pornhub
A data warehouse that has contains all the different variations of pronouncing "aluminum".
45 Oracle databases, 3 MSSQL boxes...some jerkoffs rogue MYSQL database and another MongoDB because "magazine article \resume builder" 4 Hbase and oh dear god some legacy Domino server from the 90's
12 different MQ instances from 3 different vendors
LDAP directory, exchange environment, creepy voicemails from your aunt.
Some crap from AWS but none of the contractors can explain exactly what the hell we are using it for

...and all that crap has to talk to each other in one way or another and also flow to a endpoints all over the place.

You can either add dblinks and integration points manual flows...reporting and blah blahb blah $$$$$$$ all over the place or you can set up Mule.
So instead of Setting up a links at the endpoint level and tightly coupling everything you just define all your crap as an endpoint in mule and do it there.

Its been awhile since I looked at it and I unsubscribed myself from their damn marketing email long ago.