Upload
others
View
3
Download
0
Embed Size (px)
Citation preview
Integration and infrastructuresKari Smolander
Content
• Integration of a software application to its use and business environment• What is integration?• Enterprise point-of-view
• EAI – enterprise application integration
• Application Integration approaches• Platforms, infrastructures and
ecosystems
Part I: Enterprise Application Integration
Software integrates always to a platform• Old ideals of computing• Hide implementation details from application
programmers• Allow separation of concerns to different modules• Facilitate interoperability between applications• Facilitate hardware independence through abstraction• More recent ideals• ”online platforms”, networked runtime environments
that• Enable two-sided markets• Enable platform-based innovation
Meaning of integration
Rodon (2006) identifies eight meanings of integration:• 1) integration as the interoperability of systems• 2) integration as developing a whole new system• 3) integration when combining existing systems into
one logical system• 4) integration as establishing communication
between systems• 5) integration as inter-organizational process
reengineering• 6) integration as standardizing existing systems• 7) integration as becoming a natural extension of the
users or a routine• 8) integration as the adoption or diffusion of a
system.External infrastructures and development platforms provide means for many of these• Interoperability, combination, communication,
process reengineering, standardizing, extension
What is enterprise
application integration
(EAI)
• A process of linking information systems or IT applications together in an organization (or between organizations)• Sharing of data and business processes to any connected application or data source• Different operating systems• Different types of databases• Legacy systems, new systems• Geographical distribution, varying
infrastructure• Crossing organizational borders• A typical example: a system deals with any kind of financial transactions an integration with the accounting system must be implemented
Software architecture
vs. Enterprise architecture
• Software architecture• The software architecture of a
program or computing system is the structure or structures of the system, which comprise software elements, the externally visible properties of those elements, and the relationships among them. (Bass, 2003)
• Enterprise architecture• Enterprise architecture is the
organizing logic for business processes and IT infrastructure of a company. (Ross & al., 2006)
The problem of enterprise computing
8
(Ross & al. 2006)
Enterprise architecture
An enterprise wide design/structure including such elements as Business processes and strategies Information systems and IT
applications Information and databases Technical infrastructure
May describe Current or “as-is” status Target or “to-be” structures A migration plan describing how to
reach the target from the current
Enterprise architecture vs. software architecture
Application integration “connects” software architecture to enterprise architecture Each system must integrate to its environment Integration must be taken into account in both EA and SA Point-to-point integration may be too hard to manage in large organizations
The number of connections is very large and there is too much variability in integration methods
A separate strategy for integration is needed in large organizations – it should not be the responsibility of individual systems
Kari Smolander
EnterpriseArchitecture
SoftwareArchitectureApplication integration
Application Integration
Approaches
• The following is based on the book David S. Linthicum: ”Next Generation Application Integration: From Simple Information to Web Services”, Addison-Wesley, 2004• (an old book, but the main points are
still valid)• Linthicum identifies four basic alternatives for application integration• Information-oriented integration• Business process integration• Service-oriented integration• Portal solutions
Approach 1: Information-oriented integration
Information flow between source and target systems• From/to databases• From/to API’s• From/to devices• File transfer between applicationsTraditional and well-known way to integrate applications
Kari Smolander
Application A
Application B
Information
Characteristics of information
oriented integration
• Only simple information is transferred• Usually no need to change source and target
systems• Can be implemented with simple file or database
transfers• No need to manage issues with state, logic and sequences – no behavior linked with integration
• Simple, easy to understand and implement with single systems
• A good solution for simple cases – but• No behavior attached to integration• Management of business rule changes may be a
nightmare• Number of point-to-point connections may cause
management problems when the number or systems grow (the number grows in squares)
Patterns of information
oriented integration
• Linthicum identifies four patterns of IOAI:• Database• Application• User interface• Embedded device• The classification is based on the types of systems that produce and consume information
Pattern 1: database level integration
Applications communicate directly with databases• Use of SQL• Call-level interfaces
- ODBC, JDBC
Databases control their content with database definitions• Possibilities of attaching behaviour/business transactions is very limited• Database triggers
Information structure is not bound to business entities – the database structure must be known• Calculations, business rules, and associations between data items are not in the result
set
Kari Smolander
Data Calling Application
SQL
Information
Database level integration:Data replication
Automatic or scheduled data transfer between two or more databases• E.g. database replicas in locations that have unsure connectionsRequires a DBMS that supports data replicationMost of modern DBMSs include replication feature
Kari Smolander
DB1 DB2
Database level integration:Data federation/federated databasesIntegrates many databases as one virtual oneRequires a special software that implements the feature and the connections
DB2
Oracle
Informix
Sybase
Virtualdatabase
Kari Smolander
Pattern 2: application level integration
The target application implements an application programmer’s interface• A non-standard programming language interface (such as C)• RESTful HTTP API• A standard component interface
- JCA (J2EE Connectivity Architecture), .NET components- Web services (more later)- “Standard” package interface (such as SAP BAPI)
The target application has a full control for implementation and execution
Kari Smolander
Target application API ApplicationInformation
Pattern 3: User
interface level
integration
• “screen scraping”: accessing screen information through a programmatic mechanism• The only alternative in many old legacy
systems• A fake user interface is driven by the
integration program and information is fetched directly from the character-based screen
• Used when no database access nor API is available from a remote location
• Good thing: the legacy application will take care of all business rules and behavior
• Also: software robots do screen scraping, but also include other mechanisms, such as auditing
Pattern 4: Device
level integration
• Using sensors, automation devices, etc.• Usually API-based and proprietary mechanisms• http://www.programmableweb.com/ca
tegory/internet-things/api - hundreds of different APIs
• The trend towards REST APIs• A specific problem: the devices can not always store information• The information must flow freely from
the device
Approach 2: Business process
integration
• Instead of defining integration between application pairs, an enterprise level perspective is taken
• The business of the enterprise is modelled and the integration between systems (and humans) is defined based on the model
• The integration may be implemented with any other approach (such as information-oriented)
Business process integration is based on models
Defined top-level process where the information systems of the organization are integratedThe objective is to implement a model-based integration• Ideal: when the actual processes
change, the formally defined business process model is changed
Organization A Organization B Organization C
Process integration model
Kari Smolander
Business Process
Modeling
• Business process modeling with a graphical tool• BPM Engine• Needs a formal process model• Integrates the applications as defined in the
process model• Examples of business processes to be modelled• Processing a customer request• Manufacturing an automobile• Delivering a product to a customer• Processing a financial transaction• The BPM engine takes care of the logic of a transaction and implements the integration
BPM in practice
• Some standards exist• BPEL, BPELWS – Business Process
Execution Language• BPML – Business Process Modelling
Language• ebXML – Electronic Business Extensive
Markup Language (exchange of business information)
• RosettaNet – a process-based standard for exchanging trade information
• Some use of business process modeling in large enterprises, for example in logistics
Approach 3: Service-oriented integration
The delivery of business logic through published services
Kari Smolander
Application A
Aplication B
Application C
Application D
Composedapplication End user
SOA components
Services• Contract
- Each service includes a definition of what and in what conditions it will do- The service commits to implementation of the contract
• Implementation- The service will be implemented using whatever technique that is suitable – many times there is a connection to
an enterprise system
• Interface- The interface is implemented with a standard mechanism and definition language
Service repository• Includes the published service definitions (contracts and interfaces)
(Enterprise) Service bus• An optional component through which the delivery of services is centralized• Service users do not need to know all service providers – the bus takes care of service
delivery and provides infrastructure services
Kari Smolander
Web services
• Publication and description of services with standardized methods, e.g.• WSDL, Web Services Description Language
• Service definitions, contracts• UDDI, Universal Description, Discovery and
Integration• Service repository
• SOAP, Simple Object Access Protocol• Service invocation
• Communication with HTTP(S) in XML format• Available in almost all platforms and
environments• Enables also inter-organizational implementation
Approach 4: Portal solutions
Integration of user interface in a web browserUser is the integrator• Services are provided to
the user who can use the same user interface for different functions
• Company intranets are typical examples
Kari Smolander
Web Browser
Web Server+
Middleware
SAP
Oracle
Tailored sales system
Tailored warehousesystem
Features of portals
• They concentrate on data representation• Real time functions and transactions do not usual integrate across applications• User takes care of needed integration• Single sign-on is a typical mechanism in portals• Mash-up• A web application that combines data
from more than one source into a single integrated tool
• Very popular in web, e.g. use of Google Maps
• Aggregates content in a finer level than a portal
Part II: Platforms, Infrastructures and
EcosystemsKari Smolander
Topic area
• Software ecosystems and infrastructures• Or: platforms for software development and
business
• How software integrates to its business and use environment• Most often this is implemented through existing
ecosystems or infrastructures• They offer some basic and general functionality
(economy of scale)• They provide means to access a large audience of
users and technology providers (two-sided markets)
• Many kinds of infrastructures, for many purposes• Enterprise-wide, national, global• General, domain specific• A single software application may integrate to many
of these.
Platforms, Infrastructures
and Ecosystems in
Software Development
• Why is this topic important and interesting?• Software is always on a platform• Different levels of platforms• There is an infrastructure underneath• Enterprises have an infrastructure as
well
Examples of different levels of platforms
Single computer• Operating system• APIs
Local/enterprise• Enterprise infrastructure, enterprise architecture• Enterprise service bus• Database management systems, application servers
National/regional• Healthcare data exchange, electricity smart grid, ...
Global• Google Play, App store – Android, IOS, ...• Industry-specific platforms• Amazon web services• Steam, Playstation, ...
Kari Smolander
There is an infrastructure
underneath
• All recent digital innovations require a running infrastructure that integrate users, service providers, devices and other parties• Cloud computing
• Software as a service• Platform as a service• Infrastructure as a service
• Big data• The data provided by the infrastructure
from various sources• Internet of Things
• Requires integration to a cloud infrastructure
• Social media, human interaction• ...
Enterprises have an infrastructure as well
IT infrastructure (ITIL v3)• a combined set of hardware, software, networks, facilities, etc.
(including all of the information technology), in order to develop, test, deliver, monitor, control or support IT services
In other words• What kind of information technology is needed in the enterprise?• How is this IT planned and developed?• How is IT and its change monitored and controlled?• How is its use supported?Enterprise architecture• A model and a plan of the combination of business processes and IT
Kari Smolander
Platforms/infrastructure enable the economy of scopeInstead of economy of scale, platforms and infrastructures are about economy of scope• Economy of scale is not so relevant in software”Design hierarchy” is essential in product development, especially in software• Use and reuse of common assets as templates for product innovation• Platforms can be seen as component and subsystem assets“Economies of scope” exist when the cost of joint production is less than the cost of producing each output separately (Gawer, 2014)• Applies both to production and to innovation (ibid.)
- Innovation ecosystems – not only about buyer-supplier relationships
Kari Smolander
Economy of scope –
Platforms as technological architectures
• Structural commonalities• Modular technological architecture• Include a core and a periphery
• A “stable” core (= the platform itself)• A variable periphery
• Management of complexity• Eliminate unmanageable spaghetti
tangle of systemic interconnections• Reduce the scope if information that
designers need to designs• Allow specialization and division of
innovative labour
Accessing the markets
Platforms as markets• “Two-sided markets”, “multi-sided markets”• Facilitators of exchange between different types of consumers that
would not otherwise transact with each other (Gawer, 2014)• A platform coordinates these groups of consumers for example
through pricingNetwork effect• Agents interacting via platforms where one group’s benefit is
dependent on the size of the other group joining- E.g. app developers and users of the app platform (such as Android)- Self-reinforcing feedback loop – may lead to “winner-take-all” outcome
Kari Smolander
Platform
Essential features• Basis for new product development and incremental innovation• Enable the creation of a family of related products or sets of new features by
deploying components defined by the platform
The first mention (Brown, 1985): Baldwin Locomotive Works (1854)• A rigorous program to standardize locomotive parts• Standard components that can be used in standard engines or even in custom
designs
Platforms are the basis for modern manufacturing and globalizationPlatforms for IT and software are similar• Two-sided markets• Modular technological architectures
Kari Smolander
Software Ecosystem
(Jansen, 2015)
• A set of actors functioning as a unit and interacting with a shared market for software and services, together with the relationships among them.
• These relationships are frequently underpinned by a common technological platform or market
• The actors operate through the exchange of information, resources and artifacts.
Examples of Software Ecosystems
• Facebook• Google• Steam• Salesforce• Amazon• Autodesk/AutoCAD• Playstation• Microsoft Windows• E-Estonia/X-Road• …
Enterprise architecture vs.
platforms and infrastructures
• Enterprises need to integrate to various digital infrastructures/platforms• Access the markets• Communicate with the stakeholders• Organize logistics and supply chain• Enable sales and marketing• Organize HR management and health
care• Enable financial transactions• Deal with governments and tax offices• …
Summary• Digital infrastructures and platforms are
everywhere• Most activities must integrate to them• This integration is an essential skill for
software and business developers