Post on 25-Feb-2016
description
transcript
CS 4720
Enterprise Architecture
CS 4720 – Web & Mobile Systems
CS 4720
The Concept of a Web Service• Each service is built around a function/feature• That function is surrounded by a specified set
of protocols (SOAP, POX, WSDL, WSD, etc) to govern communication
• Services can be distributed in such a way that then end “application” is a completely distributed application that is transparent to the end user
2
CS 4720
The Concept of a Web Service• We are focused on creating a full “service”• Something that has a fully transparent
methodology for talking to it• Something that can be invoked by remote
applications (or other services)• All for the purpose of creating a larger system
solution
3
CS 4720
Defining a System Solution• Computer Science education tends to be rather
product focused• “Build an app that does x”• Most of you probably think about taking a
programming job as going to work for IBM, Microsoft, etc and building software that is actually sold
4
CS 4720
Who's the Customer?• Think of the number of software development
companies out there that sell software?• Name some. What is their business model?• Now name some other major companies that
you know of who's core business isn’t software.• How does software play in their business?• Who do you think writes that code? Who are
the customers of those systems?
5
CS 4720
The Enterprise
6
CS 4720
The Enterprise• A business, company, or other comparable
organization• Businesses have business models and goals• Businesses have various resources
– Staff– Products– Services– Information Technology
• All have to work together to succeed
7
CS 4720
Enterprise Architecture• “The primary purpose of describing the
architecture of an enterprise is to improve the effectiveness or efficiency of the business itself.
• This includes innovations in the structure of an organization, the centralization or federation of business processes, the quality and timeliness of business information, or ensuring that money spent on information technology (IT) can be justified.”
8
CS 4720
Enterprise Architecture
9
CS 4720
What do we use web services for?• Sure, we can use web services to build
applications that we distribute or sell to end users
• But what if we need some very specific services based around our very specific business model?
• Not necessarily going to be a huge market for that
• The customer is internal to the business
10
CS 4720
How does this relate to web services?• SOA and EA both:
– address similar architectural domains– are intended to closely align IT with business– use input based on business objectives– require similar strategies and planning activities
11
CS 4720
How does this relate to web services?• SOA is (in effect) a partial subset of EA• SOA is a potential tool in creating a full
enterprise architecture– Businesses build services around core
functions/features in the enterprise• For example: UPS might have a service that finds the
current location of a package• This is an internally created service that has both
internal and external uses• But what about a service to assign a driver to a route?
12
CS 4720
Internal Business Services• These services are geared specifically to one particular
business• What are some examples?• Our favorite example: SIS• Peoplesoft didn't build that from scratch• The brought together existing components and make
some custom changes to create a new internal business solution
• That's enterprise architecture (and why you need to learn to do it better)
13
CS 472014
So… why are we talking about this?• Creating web-enabled software is not always
about building web pages• Creating mobile software is not always about
building consumer apps• Web services are about building a software
solution around a very specific problem• Where do we see some of the most change in
the way the world works?• Where is most software used?
CS 4720
That's the why; now the how• We’ve done web services in PHP/Python, now
Appian/BPEL/BPMN, next Java, then .NET
15
CS 472016
BPMN• Business Process Model and Notation• Latest version from March 2011• Used to model and specify business processes• Flowchart-like notation• Meant to look like UML• Meant to be easy for everyone to read and
understand
CS 472017
BPMN
CS 472018
BPMN
CS 472019
Appian
CS 472020
BPEL• Remember BPEL?• Business Process Execution Language• An XML format that is meant to “orchestrate”
various functions/methods that are built in other languages
• Takes inputs and outputs and passes them between web services!
• BPMN can mesh with BPEL
CS 472021
BPEL• Why build from the ground up?• Combining web services (WSDL) with BPEL to
build your own applications internal to an enterprise
• Eclipse plugins and open-source projects
CS 472022
Our Friend Java• We know so much, but actually so little• Java has been around for nearly 20 years• Lots of people know it• Can't hardly find a college CS grad that can't
program something in Java
CS 4720
The Java Family• Java is Java is Java no matter what you
download/run• The core is the same – that's the “Write Once,
Run Anywhere*” idea• * Well… sorta• Java might be too big for some devices or need
more functionality for others• How do we change that?• We change the imports
23
CS 4720
The Java Family• Any Java application is contingent on the
libraries you include with it• Thus, we have three basic branches of Java,
based on the core set of libraries:– Java SE (Standard Edition): has everything for
desktop use, including GUIs, basic threading, etc– Java EE (Enterprise Edition): has more than SE, and
includes packages specifically for enterprise arch– Java ME (Mobile Edition): has less than SE and a
different GUI package
24
CS 4720
Java EE's New Packages• javax.ejb – Enterprise JavaBeans, the core of
Java's EA model, includes API for persistence, remote procedure calls, concurrency control, and access to distributed objects
• javax.jms – the Java Message Service provides methods for communicating between enterprise objects
• javax.resource – the Java EE Connector allows for connecting to application servers
25
CS 4720
How is Java EE like Web Services?• In a web service
26
CS 4720
How is Java EE like Web Services?• In Java EE
27
CS 4720
Why Java EE?• When dealing with business processes, you will
often run into questions like these:– “What if the server goes down while I'm assigning a
route to a truck delivering packages?”– “How do we keep the data secure on our
network?”– “We have thousands of people using this system –
how do we keep it online?”– “I don't want to have to keep rewriting business
logic for every tiny program we need.”
28
CS 4720
Java EE Terminology• JAR (Java Archive): a collection of Java libraries• WAR (Web Archive): a Java web application, consisting of JSP
files and servlets• JSP (Java Server Pages): dynamically executed HTML + Java web
pages• Servlet: pre-compiled, request/respond object, kinda like a pre-
compiled PHP page• EJB (Enterprise JavaBean): where the business logic lies, exists
server-side• EAR (Enterprise Archive): a full enterprise solution with JARs,
WARs, and EJBs inside• Application Server / Container: a server that can handle EARs
29
CS 4720
How it all fits together
30